黑马程序员技术交流社区
标题:
输入一英文句子,将其中所有单词首字符转换成大写
[打印本页]
作者:
阳光地带
时间:
2014-7-23 02:16
标题:
输入一英文句子,将其中所有单词首字符转换成大写
#include <stdio.h>
void transformer(char *source, char *destination)
{
int i = 0;
int flag=0; //根据flag判断字符是否是单词的起始字符,flag = 0时,字符是起始字符变为大写
//如果源字符串开头有空格,直接复制到目标字符串
for (; source[i]!=' ' && i!='\0'; i++) {
destination[i] = source[i];
}
//将第一个字母变为大写(如果是小写)
if (source[i]>96 && source[i]<123) {
destination[i] = source[i] - 32;
}else
destination[i] = source[i];
i++;
flag=0;
//处理字符串后续部分
for(; source[i]!='\0'; i++)
{
//如果有空格,直接复制,并置flag为一
if (source[i]==' ') {
destination[i] = source[i];
flag = 1;
continue;
}
//当flag=1时,字母转换称大写,flag=0时直接复制
if (flag) {
if (source[i]>96 && source[i]<123) {
destination[i] = source[i]-32;
}
}else{
destination[i] = source[i];
}
}
destination[i] = '\0';
}
int main()
{
char source[256];
char destination[256];
printf("Input the source string:\n");
gets(source);
复制代码
gets函数确实不安全,有时候不能得到正确的输入。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2