关于C编程问题,由于是C 初学者,希望大神可以多写点注释 尤其是指针和数组

输入一个字符数组中每个单词以全小写或全大写交错排列,编写函数,修改字符串,将字符串改成“驼峰”排列如:传入"thisISaGOODboy"改成:"ThisIsAGoodB... 输入一个字符数组中每个单词以全小写或全大写交错排列,编写函数,修改字符串,将字符串改成“驼峰”排列

如:传入"thisISaGOODboy"

改成:"ThisIsAGoodBoy"

void changeString(char * str);
展开
 我来答
风雷九州
2014-12-03 · TA获得超过3024个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:406万
展开全部
这每个单词之间有空格作为间隔吗?

还是全部挤在一起的?要是全部挤在一起,还要去分词,那可就麻烦了。
追问
连续的字符串,但是每个单词要么是大写要么是小写 无标点符号和空格  要编写函数每个单词首字母改成大写并且输出void changeString(char * str);
追答
void changeString(char * str)
{
int    flag = 0;  //大小写标记,1代表上次是大写,2代表上次是小写
char * temp = NULL;
if(str == NULL)
{
return;
}
temp = str;
while(*temp != '\0')  //判断是否字符串结束,结束标志是'\0'
{
if((*temp >= 'A') && (*temp <= 'Z'))  //判断本次是大写字母
{
if(flag == 1) //上次出现的是大写字母
{
*temp = *temp + 32; //那就变成小写
}
else  //上次出现的是小写字母
{
flag = 1; //这是一个新的单词的开始,啥也不用做,置上标记即可
}
}else if((*temp >= 'a') && (*temp <= 'z'))  //判断本次是小写字母
{
if(flag == 2) //上次出现的是小写字母
{
//什么也不用做
}
else //上次出现的是大写字母
{
*temp = *temp - 32; //这是一个新单词的开始,小写变成大写字母
flag = 2; //置上小写字母标记
}
}
temp++;  //跳到下一个字符
}
return;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式