- #include
- void main()
- {
- char str[50];
- printf("input string:>");
- gets(str);
- int i = 0;
- while (str[i] != '\0')
- {
- if (str[i] >= 'a' && str[i] <= 'z')
- {
- str[i] = str[i] - 32;
- }
- i++;
- }
- printf("%s",str);
- }

不用scanf是因为scanf遇到空格和回车会结束输入。
我们直到小写字母到大写字母ASCII码值想隔32,用十六进制为(0x20),大小写字母范围分别是
a~z(0x61~0x7a),用十进制来说就是(97~122)。大写字母是(0x41~0x5a);