C语言问题,有关字符串计数和字符串排列的(标题要长!!!)
发布网友
发布时间:2024-10-31 14:32
我来回答
共3个回答
热心网友
时间:2024-10-31 14:24
程序没有什么问题啊。
输入字符的个数只能处理前10个。
你有什么问题,可以详细说一下。
热心网友
时间:2024-10-31 14:27
最好把t改成char型。就是处理的字符有点短,可以把它变得大一些,如200。当然你实际中可能输不了那么多,所以在统计字符时前,可以加一个整型变量,它等于strlen(str)或
sizeof(str)/sizeof(char),这样可移植性会强一些
热心网友
时间:2024-10-31 14:31
我自己亲自设计的代码,符合你的要求,而且比你的代码可读性还好,给你吧,给我分啊!!
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s;
vector<char> v,b,c;
cin>>s;
cout<<"字符串字符个数"<<(s.length())<<endl;
for(int i=0;i<s.length();i++)
{
if(s[i]>=65&&s[i]<=90) //大写字母
v.push_back(s[i]);
else if(s[i]>=97&&s[i]<=122)
b.push_back(s[i]);
else
c.push_back(s[i]);
}
sort(v.begin(),v.end());
sort(b.begin(),b.end());
sort(c.begin(),c.end());
for(int i=0;i<v.size();i++)
cout<<v[i];
cout<<endl;
for(int i=0;i<b.size();i++)
cout<<b[i];
cout<<endl;
for(int i=0;i<c.size();i++)
cout<<c[i];
cout<<endl;
return 0;
}