gpt4 book ai didi

c - 文本行的操作

转载 作者:行者123 更新时间:2023-11-30 17:48:30 25 4
gpt4 key购买 nike

下面的代码尝试一次操作多行文本。

1.我的第一个问题是编写一个循环来读取几行文本(使用 scanf()),并在输入的第一个字符是换行符时退出。这些文本行有一些条件: 第一个字符必须是 2 到 6 之间的数字,后跟一个空格和一行文本(<80)。这个数字将使文本“跳舞”。

2.我的第二个问题是弄清楚如何根据输入的第一个数字将字母从小写转换为大写,反之亦然。我必须进行这些转换,但我不知道如何调用它们来更改文本。例如:如果我输入“3 apples and Bananas”,正确的输出应该是“AppLes And BanNas”。如您所见,空格将被忽略,并且文本始终以大写字母开头。

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <ctype.h>

using namespace std;
void print_upper(string s1);
void print_lower(string s2);
void main(void)
{
char text[80];
text[0]='A';//Initialization
int count_rhythm;

while (text[0] != '\n'){//To make the loop run until a newline is typed
scanf(" %79[^\n]",text);
if(isdigit(text[0])) //To verify that the first character is a number
{
printf("\nGood");//Only to test
}
else
{
printf("\nWrong text\n");//Only to test
}
}
}

void print_upper(string s1)//Print capital letters
{
int k1;
for(k1=0; s1[k1]!='\0'; ++k1)
putchar(toupper(s1[k1]));
}

void print_lower(string s2)//Print small letters
{
int k2;
for(k2=0; s2[k2]='\0'; ++k2)
putchar(tolower(s2[k2]));
}

最佳答案

您还可以定义一个函数printNthUpper(),它接受一个字符串和整数n,指定以大写形式打印哪些字符。该函数的循环将类似于您已有的函数,但有一个条件,比较提供的整数值和给定字母的索引来决定是否调用 toupper() (例如 printf("%c", i%n == 0 ? toupper(s[i]) : s[i]);)。

关于c - 文本行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com