C++编程 编写函数去除字符串中包含的非字母字符(不包括空格),并将小写字母转换成大写字母

题目内容:编写函数去除字符串中包含的非字母字符(不包括空格),并将小写字母转换成大写字母。输入格式:待转换的字符串输出格式:转换后的字符串... 题目内容:
编写函数去除字符串中包含的非字母字符(不包括空格),并将小写字母转换成大写字母。
输入格式:
待转换的字符串
输出格式:
转换后的字符串
展开
 我来答
上_善_下_流
推荐于2018-02-28 · TA获得超过677个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:141万
展开全部
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
char* str1;
char str[100];
str1=str;
cout<<"输入字符串:";
cin>>str1;
char *s=str1; //记录字符串首地址
while(*str1)
{
if(*str1>='a'&&*str1<='z') (*str1)=(*str1)-32; //变小为大
else if(*str1<'A'||*str1>'Z') //用于删除非字母元素
{
*str1='\0';
strcat(s,str1+1);
continue; //跳出此次循环,进入下一轮
}
str1++;
}
cout<<"结果:"<<s;
return 0;
}
用Dev C++完美执行,新鲜出炉的。
不过还是建议自己多动手,动脑想想啊,那样记得牢。
有什么问题可以继续问哈。
以为是自
2017-04-10 · TA获得超过232个赞
知道答主
回答量:56
采纳率:100%
帮助的人:31.3万
展开全部

我这个没用指针,思路简单(大神勿怪),有问题请指点

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int i=0;
char x,n[202],m[202];//需要就自己扩大

memset(n,0,sizeof(n));//假装清空一下
cin.get(n,202); //前面扩大就跟着扩大

for(int j=0;;j++)
{

x=n[j];//这个x其实没什么用。。。
if(x>=97&&x<=122)
{m[i]=x-32;i++;}//小写变大写
else
if(x>=65&&x<=90)
{m[i]=x;i++;}//大写不变
else
if(x==' ')
{m[i]=' ';i++;}//空格不变
else
if(x=='\0'||x=='\n')//判断一下是否结尾
break;//咳咳,这个万一结尾不是以上两种,就自己改呗。。。

}

for(int j=0;j<i;j++)
printf("%c",m[j]);
return 0;
}//也可以换成下面这个,函数的话写不写无所谓,反正是小程序,自己改下也行

下面用的是string类型(#include<cstring>)

int main()
{
int i=0,l;
char x;
string n,m;

getline(cin,n); 
l=n.length();//偷个懒,取了字符串n的长度

for(int j=0;j<l;j++)
{

x=n[j];//这个x其实也没什么用。。。
if(x>=97&&x<=122)
{m[i]=x-32;i++;}
else
if(x>=65&&x<=90)
{m[i]=x;i++;}
else
if(x==' ')
{m[i]=' ';i++;}

}

for(int j=0;j<i;j++)
printf("%c",m[j]);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式