C++ string应用

两个函数,一个是由大写转小写,一个是识别名字中的姓和名

#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
//例CH30_E2中,函数ToLowercase用于将一个string对象从大写变为小写。代码如下所示。
string ToLowercase(string str)
{
	char ch;
	string str1;
	str1.resize(128);
	int Size = size(str);
	for (int i = 0; i < Size; i++)
	{
		
		ch = str[i];
		if (ch >= 'A'&&ch <= 'Z')
		{
			ch = ch- 'A' + 'a';
			str1.append(1,ch);
		}
		else if (ch== ' ' ||ch =='!'||ch=='?')
		{
			str1.append(1, ch);
		}

		else
		{
			throw - 101;
		}
	}
	return str1;
}
//例CH30_E3:姓名字符串由两部分组成,中间以多个空格或Tab分开,要求写一个函数将姓和名都提取出来。若输入“LiMing",则解析出姓为“Li"名为"Ming"。
string XingmingTQ(string str)
{
	string str1;
	string str2 ;
	string str3;
	int posKG = str.find(' ');
	int posKG1 = str.find(' ', posKG + 1);
	cout << posKG<<' ' << posKG1 << endl;
	if (posKG <0&&posKG1<0)
		throw -101;
	else if(posKG >=0 && posKG1 == -1)
	{
		 str1 = str.substr(0, posKG);
		 str2 = str.substr(posKG + 1);
		 cout << "xing:" << str1 << endl;
		 cout << "ming:" << str2 << endl;
	}
	
	else if (posKG >= 0 && posKG1 >=0)
	{
		 str1 = str.substr(0, posKG);
		 str2 = str.substr(posKG + 1,posKG1-posKG);//str.substr的第二个参数是拷贝的长度
		 str3= str.substr(posKG1 + 1);
		 cout << "xing:" << str1 << endl;
		 cout << "Mming:" << str2 << endl;
		 cout << "FMming:" << str3 << endl;

	}
	return str1, str2, str3;
}
int main()
{
	try {
		string str("WHAT THE HELL?");
		string str1;
		str1 = ToLowercase(str);
		cout << str1 << endl;
		string str4 = "Edward Kullen Rechard";
		string str5 = XingmingTQ(str4);
		
		return 0;
	}
	catch (int n)
	{
		cout << "out of range" << endl;
	}
	
}

结果如下所示 

猜你喜欢

转载自blog.csdn.net/weixin_41965702/article/details/84856304
今日推荐