字符串使用的一些简单问题

来源:互联网 发布:matlab for mac安装 编辑:程序博客网 时间:2024/05/18 12:04

首先能做到字符串的随意输入的有三种;

   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;
}

这是第一次写东西 有错或者又漏掉的地方敬请包涵、期待您的回复

原创粉丝点击