c++字符串中转换小写字母
题目描述给定一个字符串,对该字符串中所有英文小写字母其转换成对应的大写字母,其它字符不变。输入输入的第一行是整数T,表示有T个字符串。接着有T行,每行有一个长度至多为10...
题目描述
给定一个字符串,对该字符串中所有英文小写字母其转换成对应的大写字母,其它字符不变。
输入
输入的第一行是整数T,表示有T个字符串。
接着有T行,每行有一个长度至多为100的字符串,串中可以有空格。
输出
对每行的字符串,输出转换后的结果。
样例输入
2
acm-icpc
Shanghai Univ.
样例输出
ACM-ICPC
SHANGHAI UNIV.
知道怎么做,单组数据没问题。就是多组的话输出部分一直有疑问,如果用for循环输入多组数据的话系统不是乱码就是报错,后面还有几题输出格式同这一样。望大神解答了。 展开
给定一个字符串,对该字符串中所有英文小写字母其转换成对应的大写字母,其它字符不变。
输入
输入的第一行是整数T,表示有T个字符串。
接着有T行,每行有一个长度至多为100的字符串,串中可以有空格。
输出
对每行的字符串,输出转换后的结果。
样例输入
2
acm-icpc
Shanghai Univ.
样例输出
ACM-ICPC
SHANGHAI UNIV.
知道怎么做,单组数据没问题。就是多组的话输出部分一直有疑问,如果用for循环输入多组数据的话系统不是乱码就是报错,后面还有几题输出格式同这一样。望大神解答了。 展开
展开全部
程序例子如下:
/*
**VC++6.0编译通过
**原理:对字符串中每个字符进行判断。
**如果是大写字母,则ASCII码加上32(即为对应小写字母)。
**如果是小写字母,则ASCII码减去32(即为对应大写字母)。
**至于32这个数,可以通过查ASCII码表得知大小写字母的这一关系。
*/
#include<iostream>
#include<string>
using namespace std;
void main()
{
int i;
string str;
cin>>str;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] += 32;
continue;
}
if(str[i]>='a'&&str[i]<='z')
{
str[i] -= 32;
continue;
}
}
cout<<str;
}
/*
**VC++6.0编译通过
**原理:对字符串中每个字符进行判断。
**如果是大写字母,则ASCII码加上32(即为对应小写字母)。
**如果是小写字母,则ASCII码减去32(即为对应大写字母)。
**至于32这个数,可以通过查ASCII码表得知大小写字母的这一关系。
*/
#include<iostream>
#include<string>
using namespace std;
void main()
{
int i;
string str;
cin>>str;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] += 32;
continue;
}
if(str[i]>='a'&&str[i]<='z')
{
str[i] -= 32;
continue;
}
}
cout<<str;
}
展开全部
/*
**VC++6.0编译通过
**原理:对字符串中每个字符进行判断,
**如果是大写字母,则ASCII码加上32(即为对应小写字母),
**如果是小写字母,则ASCII码减去32(即为对应大写字母)。
**至于32这个数,你可以通过查ASCII码表得知大小写字母的这一关系。
*/
#include<iostream>
#include<string>
using namespace std;
void main()
{
int i;
string str;
cin>>str;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] += 32;
continue;
}
if(str[i]>='a'&&str[i]<='z')
{
str[i] -= 32;
continue;
}
}
cout<<str;
}
是否可以解决您的问题?
**VC++6.0编译通过
**原理:对字符串中每个字符进行判断,
**如果是大写字母,则ASCII码加上32(即为对应小写字母),
**如果是小写字母,则ASCII码减去32(即为对应大写字母)。
**至于32这个数,你可以通过查ASCII码表得知大小写字母的这一关系。
*/
#include<iostream>
#include<string>
using namespace std;
void main()
{
int i;
string str;
cin>>str;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] += 32;
continue;
}
if(str[i]>='a'&&str[i]<='z')
{
str[i] -= 32;
continue;
}
}
cout<<str;
}
是否可以解决您的问题?
追问
单组字符串没有问题,题目要求的T组字符串不知道该以何种方式输入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 fflush() 清一下输入流。
程序例子如下。
#include<iostream>
#include<iomanip>
using namespace std;
#include<stdio.h>
int main(){
int i,j,n;
char s[100];
cin>>n;
fflush(stdin);
for (i=0;i<n;i++){
gets(s);
for (j=0;j<strlen(s);j++) if (s[j]>='a' && s[j]<='z') s[j] = s[j]-'a'+'A';
cout << s << endl;
}
return 0;
}
程序例子如下。
#include<iostream>
#include<iomanip>
using namespace std;
#include<stdio.h>
int main(){
int i,j,n;
char s[100];
cin>>n;
fflush(stdin);
for (i=0;i<n;i++){
gets(s);
for (j=0;j<strlen(s);j++) if (s[j]>='a' && s[j]<='z') s[j] = s[j]-'a'+'A';
cout << s << endl;
}
return 0;
}
追问
好的,让我先试试看
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询