C++怎么样实现把char* 中的小写字母换成大写的

//全部按小写输入一句话,写一个函数使每个单词的首字母大写
//如:this is a computer --> This Is A Computer

#include <iostream>
using namespace std;
int main()
{
char *ch;
cout<<"请输入一段话"<<endl;
char temp[100];
cin.getline(temp,100);
ch=temp;
int len=strlen(ch);
for(int i=0;i<len;i++)
{
if(ch[i]==' ')
{
//【这应该写什么】
i++;
}
i++;
}

for(i=0;i<len;i++)
cout<<ch[i];
return 1;
}
最新回答
旧事酒浓

2025-06-26 02:02:16

C++可以通过循环判断把char *中的小写字母转成大写。

 

如下是一个示例函数代码

 
char toUpper(char * src)
{
    char *p=src;
    while(*p)//
字符串
不结束就循环
    {
        if(*p>='a' && *' <='a') //判断小写字母
            *p-=32; //转大写
        p++; //指针后指,准备处理下一个字母
    }
    return *src; //返回修改后的字符串首地址
}
残暴的安妮

2025-06-26 12:18:49

我只能做到这样了,如果你的题没抄错,那我的答案就差一点了,小写字母比
大写字母大20h(十六进制)
也就是十进制的32。
#include <iostream>
using namespace std;
int main()
{
char *ch;
cout<<"请输入一段话"<<endl;
char temp[100];
cin.getline(temp,100);
ch=temp;
int len=strlen(ch);
for(int i=0;i<len;i++)
{
if(ch[i]==' ')
{
ch[i+1]=ch[i+1]-0x20;
//【这应该写什么】
// i++;
}
//i++;
}

for(i=0;i<len;i++)
cout<<ch[i];
return 1;
}
沧古烟

2025-06-26 02:54:07

char * 指向的是字符串常量 是不可以做修改的
流连染紫旳悯〆

2025-06-26 22:14:35

if (i!=len-1 && ch[i+1]>='a' && ch[i+1]<='z')
ch[i+1] -= 'a'-'A';
追问
#include 
using namespace std;
int main()
{
char *ch;
cout='a' && ch[i+1]<='z')
{
ch[i] -= 'a'-'A';
i++;
}
i++;
}

for(i=0;i<len;i++)
cout<<ch[i];
return 1;
}

好了!谢谢
风向决定发型

2025-06-26 05:43:35

strlwr,strupr函数