因为下面的代码应该将给定的字符串转换为可选的大写或小写。一个字符串 S(仅字母)作为输入传递。打印输出应包含每个单词奇数位置的字母大写,每个单词偶数位置的字母小写。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100];
int i;
scanf("%s",str);
for(i=0;str[i]!='\0';i++){
if((i%2)==1)
str[i]=tolower(str[i]);
else
str[i]=toupper(str[i]);
}
printf("%s",str);
return 0;
}
输入将是 tREE GiVES us fruiTS
而预期的输出应该是 TrEe GiVeS Us FrUiTs
但我得到的只是第一个字符串 TrEe 我应该怎么做才能得到完整的字符串
答案 0 :(得分:2)
scanf("%s, str)
读入一个字符串直到第一个空白字符。因此,当您输入“tree give usfruits”时,它会读入“tree”,然后看到空格并停止。
尝试改用 fgets(str, 100, stdin)