#include<stdio.h>
#include<string.h>
int main(){
char str[100];
while(gets(str)!=NULL){
//printf("1:%s\n",str);
int n=strlen(str);
//printf("2:%d\n",n);
int i;
char ans[100][100];
int r=0,h=0;
for(i=0;i<n;i++){
if(str[i]!=' '&&str[i]!='\t'&&str[i]!='\r'&&str[i]!='\n')
{
ans[r][h]=str[i];
if(h==0&&ans[r][h]>='a'&&ans[r][h]<='z'){
ans[r][h]=ans[r][h]-32;
}
h++;
//printf("3:r=%d h=%d\n",r,h);
}
else{
ans[r++][h]='\0';
h=0;
//printf("4.1:%c\n",ans[r-1][h]);
//printf("4:r=%d h=%d\n",r,h);
}
}
//printf("5:r=%d\n",r);
for(i=0;i<=r;i++){
printf("%s",ans[i]);
if(i<r) printf(" ");
}
printf("\n");
}
return 0;
}
问题 B: 首字母大写:运行没有问题,但在codeup上通不过,不知道错哪儿
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
你知我知皆知 2024-07-24 10:24关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
#include <stdio.h> #include <string.h> int main() { char str[100]; while (fgets(str, sizeof str, stdin)) { // Process the input string here... int len = strlen(str); for (int i = 0; i < len; ++i) { if (!isalnum(str[i])) { str[i] = ' '; } } int r = 0; int h = 0; for (int i = 0; i < len; ++i) { if ((str[i] != ' ' && str[i] != '\t' && str[i] != '\r' && str[i] != '\n') || i == len - 1) { strcat(ans[r], str[i]); if (ans[r][h] >= 'A' && ans[r][h] <= 'Z') { ans[r][h] += 32; } h++; } else { break; } } // Print the result for (int i = 0; i <= r; ++i) { printf("%s", ans[i]); if (i < r) { printf(" "); } } printf("\n"); free(str); } return 0; }这个程序首先读取用户输入的字符串,并将其中的所有非字母数字字符替换为空格。然后,它遍历字符串,将每个非空格字符添加到答案数组中,并将其转换为小写字母。最后,它打印出所有的结果。
解决 无用评论 打赏 举报