用C语言实现单词首字母大写,但是输出来的字符串是空的。
#include<stdio.h>
void stringChange(char *str);//声明函数
int main(int argc,char * argv[]){
//1.定义一个字符数组,用来存储输入的字符串
char arr[80];
printf("请输入一个字符串:\n");
gets(arr);
printf("输入的字符串为:%s\n",arr);
//2.调用字符串转换函数
stringChange(arr);
printf("转换后的字符串:%s\n",arr);
return 0;
}
//自定义一个字符串首字母转换函数
void stringChange(char *str){
//定义一个标记,表示是否是一个空字符如果flag=0,则表示下一个字符开始是一个单词
int flag=0;
//循环遍历字符串,直到遇到'\0'结束
while(*str!='\0'){
if(*str=' '){
flag=0;
}else if(flag==0){
//小写字母减去32就可以转换成大写字母
*str-=32;
flag=1;//改变标记
}
str++;
}
} |
|