计蒜客T1113——整理药名

2023-11-18

先看题干:

这道题并不难,如果你对编程语言的基础有很好的掌握,很容易理清整个逻辑。实际上,不涉及到算法的题目都是简单题。笔者带领大家理一下这道题的考察点:

1.输入多个不定长字符串

2.将字符串的首字母一律变为大写(分本来就是大写和本来是小写两种情况)

3.将字符串的其他字母一律变为小写(分本来及时小写和本来是大写两种情况)

部分笔者采用了STL的vector和string嵌套使用,实际上普通的字符数组也能搞定,只不过STL用习惯了是真的简洁;字符处理,单独写一个函数即可,用if-else判断多种情况

完整代码如下:

#include <iostream>
#include <string>
#include <vector> 
using namespace std;

void Dx(int num,char x)
//输入参数分别是字符下标和字符本身 
{
	if(num==0)//首字母:本身是大写直接输出,小写要转换为大写 
	{
		if(x>='a'&&x<='z')
		{
			x=x-32;
			printf("%c",x);
		}	
		else
		{
			printf("%c",x);
		}	
	}
	else if(num>0)//其他字母,小写直接输出,大写要转换为小写 
	{
		if(x>='A'&&x<='Z')
		{
			x=x+32;
			printf("%c",x);
		}		
		else
		{
			printf("%c",x);
		}
	}
} 


int main(int argc, char** argv) {
	
	int n=0;
	cin>>n;
	vector<string> V;
	
	for(int i=1;i<=n;i++)
	{
		string temp;
		cin>>temp;
		V.push_back(temp);
	}
	//将输入的字符串存入vector容器中 
	
	
	for(int i=0;i<=n-1;i++)
	{
		string goal=V[i];
		for(int j=0;j<=goal.length()-1;j++)
		{
			Dx(j,goal[j]);
			//对每一个字母单独通过函数处理 
		}
		cout<<endl;
		//每处理完一段函数要换行 
	}
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计蒜客T1113——整理药名 的相关文章

随机推荐