问题陈述
我在解决编程竞赛问题时遇到了困难,其内容如下:
你的名字是英文字母。每个名称将包括一些大写字母从A到Z,一些小写字母从a到z和一些空格。您必须将名称从小写转换为大写。原来大写字母将保持不变,空格也将保留在它们的位置上。
样本输入输出
如果我输入这个..。
5
Hasnain Heickal Jami
Mir Wasi Ahmed
Tarif Ezaz
Mahmud Ridwan
Md Mahbubul Hasan计算机应该输出.
Case 1: HASNAIN HEICKAL JAMI
Case 2: MIR WASI AHMED
Case 3: TARIF EZAZ
Case 4: MAHMUD RIDWAN
Case 5: MD MAHBUBUL HASAN我的编码
这就是我用C编写的代码
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int main(void)
{
int T, i;
char string [100];
scanf("%d", &T);
for (i=0; i<T; i++)
{
gets(string);
printf("Case %d: ", i);
while (string[i])
{
putchar (toupper(string[i]));
i++;
}
printf("\n");
}
getch();
return 0;
}现在,这段代码无法产生所需的输出。我在哪里做错了?我的语法有什么问题吗?有人能指引我吗?请记住,我是一个中学生,只是一个C的初学者。
发布于 2016-03-10 16:34:14
你需要一个地遍历字符串中的每个字母。
在下面的代码中,我使用变量K完成了这一操作,变量从0到字符串的长度不等。
变量I跟踪字符串的数量。
int main(void)
{
int T, i, k;
char string [100];
scanf("%d", &T);
for ( i = 0; i < T; ++i)
{
gets (string);
for(k=0; k<strlen(string); ++k)
{
putchar (toupper(string[k]));
}
}
getch();
return 0;
}回答你的问题:http://ideone.com/SN6g4s
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
int T, i,k;
char string [100];
scanf("%d ", &T);
for ( i = 0; i < T; ++i)
{
gets (string);
printf("[%d] : %s\n", i, string);
for(k=0; k<strlen(string); ++k)
{
putchar (toupper(string[k]));
}
putchar('\n');
}
return 0;
}发布于 2016-03-10 16:51:19
请根据您的需求,检查代码并实现测试用例场景。
#include <stdio.h>
#include<string.h>
int main(){
char string[100];
int i;
scanf("%s",string);
for(i=0;i<strlen(string);i++){
string[i]=string[i]-32;
}
printf("%s",string);
return 0;
}https://stackoverflow.com/questions/35922076
复制相似问题