#include
int main()
{char a[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
{if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
}puts(a);
return 0;
}
字符串小写变大写,不知道哪错了,只求怎么改
gets函数好像已经被弃用了吧,用gets_s替代:
#include <stdio.h>
int main()
{
char a[100];
int i;
gets_s(a); // 用gets_s
for (i = 0; a[i] != '\0'; i++)
{
if (a[i] >= 'a' && a[i] <= 'z')
a[i] -= 32;
}
puts(a);
return 0;
}
这段代码没什么问题,什么错误提示?
建议你可以更改如下:1.把gets函数改为scanf或者fgets;2.使用if(a[i]>='A' && a[i]<='Z');3.当a[i]为空格时,略过不处理。希望这能帮到你!
具体的代码
将文字改为大写的代码可以改为:
#include<stdio.h>
int main()
{
char a[100];
int i;
scanf("%s", a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i];
else if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
}
puts(a);
return 0;
}
```
32改0x30