有人会用我编写的以下代码引导我朝正确的方向前进。基本上我试图让字符串中的每个其他字符都用大写字母打印,同时不考虑空格或其他非字母字符。
示例:字符串输入=“感谢添加”应该打印为“ThAnKs FoR tHe AdD”
int main (void)
{
char* input = GetString();
if (input == NULL)
return 1;
for (int i = 0, x = strlen(input); i < x; i+=2)
input [i] = toupper(input[i]);
printf("%s\n", input);
return 0;
}
注意:我是计算机科学的新手,目前正在通过edx.org使用CS50x
答案 0 :(得分:1)
只需使用isalpha
忽略其他类型的字符:
#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main (void)
{
char input[] = "thanks for the add";
int alpha_count = 0;
for (int i = 0, x = strlen(input); i < x; i++) {
if (isalpha(input[i])) {
if (alpha_count++ % 2 == 0 )
input [i] = toupper(input[i]);
}
}
printf("%s\n", input);
return 0;
}
答案 1 :(得分:-1)
#include <iostream>
using namespace std;
int main()
{
char st[] = "thanks for the add";
for(int i=0; i<strlen(st); i++)
st[i++]=toupper(st[i]);
cout<<st<<endl;
}