关于C编程问题,由于是C 初学者,希望大神可以多写点注释 尤其是指针和数组
输入一个字符数组中每个单词以全小写或全大写交错排列,编写函数,修改字符串,将字符串改成“驼峰”排列如:传入"thisISaGOODboy"改成:"ThisIsAGoodB...
输入一个字符数组中每个单词以全小写或全大写交错排列,编写函数,修改字符串,将字符串改成“驼峰”排列
如:传入"thisISaGOODboy"
改成:"ThisIsAGoodBoy"
void changeString(char * str); 展开
如:传入"thisISaGOODboy"
改成:"ThisIsAGoodBoy"
void changeString(char * str); 展开
展开全部
这每个单词之间有空格作为间隔吗?
还是全部挤在一起的?要是全部挤在一起,还要去分词,那可就麻烦了。
还是全部挤在一起的?要是全部挤在一起,还要去分词,那可就麻烦了。
追问
连续的字符串,但是每个单词要么是大写要么是小写 无标点符号和空格 要编写函数每个单词首字母改成大写并且输出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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询