首先能做到字符串的随意输入的有三种;
1:getchar()函数输入,即从文本流读入输入的字符并且将其作为结果返回(#include<string.h>需定义的头文件)
2:malloc开辟空间输入 即 char *a;a=(char*)malloc(sizeof(char));cin>>a(#include<stdlib.h>需定义的头文件)
3:用cin.get(函数名,长度); 即char a[1000000]; cin.get(a,1000000)
如统计一串字符里面的字母空格数字和其他字符
#include<iostream>
using namespace std;
int main()
{
int n=0,m=0,k=0,p=0,i;//字母、空格、数字和其他
char a[1000000];
cin.get(a,1000000);
for(i=0;i<1000000;i++)
{
if(a[i]=='\0'){//字符串末尾跳出循环
break;
}
if('A'<=a[i]&&a[i]<='Z'||'a'<=a[i]&&a[i]<='z'){//统计字母就是比较字符
n++;
}
else if(a[i]==' '){//统计空格 (也能用strcmp来比较)(这里加上单引号即表明此空格为字符)
m++;
}
else if('0'<=a[i]&&a[i]<='9'){//统计数字 也相当于是比较字符
k++;
}
else{//其他字符
p++;
}
}
cout<<n<<" "<<m<<" "<<k<<" "<<p;
return 0;
}
其次字符串里面的字符加了单引号, 不加单引号如果想实现其功能就必须按照ASII表上的写这个字符所对应的数字
如:字母大小写的转换
#include<iostream>
using namespace std;
int main()
{
char i;
cin>>i;
if((i>=65)&&(i<=97))//也能写((i>='A')&&(i<='Z'))
i=i+32;
else if((i>=90)&&(i<=122))//((i>='a')&&(i<='z'))
i=i-32;
else
i=i;
cout<<i<<endl;
return 0;
}
这是第一次写东西 有错或者又漏掉的地方敬请包涵、期待您的回复