从键盘输入一个字符串,分别输出其完全大写和完全小写的形式

如题所述

把输入的字符char[n]存到数组里去。逐个字符进行判断。你可以查看ASCII表,大写字符和小写字符数值上有分界的,当判断输入的字符值大于某个数时,就可以知道他是大写还是小写了。假设小写字符的ASCII码是40,输入的字符的ASCII值是39,这样就可以知道,该字符输入的时候是大写的。具体数值我也忘了,只和你说方法了。数值你自己查表吧。
方法:先把输入的字符全部转化为相应的大写ASCII码(即如果判断到输入字符是大写时,就不作处理。如果是小写时,把ASCII码加或者减相应的数值使他变为大写ASCII,这样该字符就变成大写了),输出这个字符组。然后,这个字符组的ASCII码全部加还是减某个数值(印象中大写和小写的ASCII是相差37),就变成相应的小写字符的ASCII码了,然后再输出。这样就可以实现先输出完全大写,然后再输出完全小写了。
编程题,知道个思路,要自己动手比较好。加油~~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-05
#include <stdio.h>
#include <ctype.h>
int main()
{
int i=0,j=0;
int system(char *command);
char array[100];
printf("输入字符串:");
scanf("%s",array);
for (;array[i]!='\0';i++)
{
array[i]= toupper(array[i]);
}
printf("字符串完全大写:%s\n",array);
for (;array[j]!='\0';j++)
{
array[j]=tolower(array[j]);
}
printf("字符串完全小写:%s\n",array);
system("pause");
return 0;
}
第2个回答  2012-11-06
先读入字符串s,再处理(大写与小写的ASCII码相差32):
完全大写:
for i:=1 to length(s) do
if s[i] in ['a'..'z'] then dec(s[i],32);
完全小写:
for i:=1 to length(s) do
if s[i] in ['A'..'Z'] then inc(s[i],32);本回答被网友采纳