输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变.

#include<stdio.h>
int main()
{
int i=0;
char a[30]={'\0'};
gets(a);
while(a[i])
{
if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
else if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
i++;
}
printf("%s\n",a);
}
程序可以成功运行 但是如果我想输入不止30个字符怎么办,有别的方法吗 不提前设置数组的大小。灵活点的方式。
另外程序有没有可以改进的地方
最新回答
山河霜白

2024-09-18 01:07:10

有啥弄的啊,大小变小写是+32,小写变大写是-32,你这个设计语言没写,无法给你写程序,注意判断下临界值就行了
崽崽╮宝贝

2024-09-18 01:07:09

提示一下,  你可以在定义数组之前先输入一个数,作为数组的大小,然后根据输入的数定义数组。

int n;
scanf("%d",&n);
char a[n];
追问
数组的那个n不是不能为变量么。。。如果按你那种方法不是应该在main外面用Define N 20    这样做么。。
追答
为什么不能在main里面? 你直接去代码里面试一下不就知道了么 , 这些东西 自己写个代码实验一下就行了。
栖止你掌

2024-09-18 00:16:29

不明白,对此不懂,抱歉!
禁区

2024-09-18 00:48:59

用字符指针