c语言 求高手

按下列要求编写程序
1. 定义一个有20个元素的字符类型数组。
2. 打印输入提示“从键盘上输入1个不超过19个字符的字符串”,用getchar()函数完成输入并存入数组。(提示:使用循环,退出循环后在数组中加’\0’作为字符串的尾部)
3. 将字符串中的所有字符变为大写并打印输出。

#include <stdio.h>
#include <stdlib.h>

int main()
{
char number[20];
char *p;
int i = 0;
p = number;

printf("从键盘上输入1个不超过19个字符的字符串:\n");

while((*p++ = getchar()) != '\n')
*p = '\0';

while(number[i] != '\0')
printf("%c", number[i++]-32);
printf("\n");

exit(EXIT_SUCCESS);
}追问

为什么输入的除了输入的大写还有一些冷僻字

追答

什么意思?冷僻字?什么地方?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-10
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char str[20];
printf("从键盘上输入1个不超过19个字符的字符串\n");
for(i = 0; i < 19; i++){
str[i] = getchar();
}
str[19] = '\0';

strupr(str);
printf("%s\n", str);
return 0;
}追问

输入完了按ENTER没有输出

追答

修改成下面的看看:
#include
#include
int main()
{
int i;
char str[20];
printf("从键盘上输入1个不超过19个字符的字符串\n");
for(i = 0; i = 'a' && str[i] <='z')
str[i] = str[i] -32;
}

printf("%s\n", str);
return 0;
}

第2个回答  2012-05-10
楼上的答案还可以吧
相似回答