黑马程序员技术交流社区
标题:
新人求助
[打印本页]
作者:
lixp
时间:
2015-10-27 21:24
标题:
新人求助
用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++;
}
}
作者:
p495416980
时间:
2015-10-27 22:05
明天才看到字符串数组{:2_39:}
作者:
StillSad
时间:
2015-10-28 09:01
这里面有个地方写错了
void stringChange(char *str){
int flag=0;
while(*str!='\0'){
if(*str=' ') //---------------->if(*str ==' ' ) {
flag=0;
}else if(flag==0){
*str-=32;
flag=1;
}
str++;
}
}
作者:
xiaobei
时间:
2015-10-28 18:24
void stringChange(char *str){
//定义一个标记,表示是否是一个空字符如果flag=0,则表示下一个字符开始是一个单词
int flag=0;
//循环遍历字符串,直到遇到'\0'结束
while(*str!='\0'){
if(*str=' ') //判断字符是否为空,应该用关系运算符==,=是赋值运算符。用(*str==' ')解决
{
flag=0;
}else if(flag==0){
//小写字母减去32就可以转换成大写字母
*str-=32;
flag=1;//改变标记
}
str++;
}
}
作者:
lixp
时间:
2015-10-29 22:25
额,这么点小问题导致整个字符串都空了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2