本帖最后由 wxy19891017 于 2015-4-22 15:23 编辑
#import <Foundation/Foundation.h>
//定义一个函数,将小写字母转换成大写字母
char upper(char c);
int main()
{
//存储用户输入的数据
char str[100];
//提示输入并接收
printf("请输入一段英文句子:\n");
//如果使用scanf不能完整接收带有空格的字符串
gets(str);
//定义一个指针指向数组首元素
char *p = str;
//判断首字母是不是大小写
*p = upper(*p);
//*p不遇到'\0'
while (*p)
{
//没有遇到空格,继续
if (*p !=' ')
{
p++;
}
//遇到空格,定位到下一个字符,字母小写改成大
else
{
p++;
*p = upper(*p);
}
}
}
printf("%s",str);
return 0;
}
//转大写
char upper(char c)
{
if (c >= 'a' && c <= 'z')
{
return c - 32;
}
return c;
}
其实网上看了好多,都没有考虑到第一个单词的首字母如果大写的情况。还有就是这里如果用scanf接收数据的话,带有空格的字符串,空格后的字符串都会丢失,所以用了gets。去除了下重复的代码。 |
|