C++处理string中的字符

我们经常需要单独处理string对象中的字符,例如:

检查一个string对象是否包含空白;

把string对象中的字符进行大小写替换;

检查某个特定字符是否出现;

。。。。。

上述问题我们可以使用范围for循环(C++11)对string对象进行遍历,例如:

string a{"hello"};

for(auto temp:a)

      操作。。。。

使用相应字符处理函数进行相关操作,常用如下:

注:c表示字符变量  char 

isalnum(c);//   当c是字母或数字时返回true;

isalpha(c);   //    当c是字母时为true;

isdigit(c);//当c是数字时为true;

islower(c); // 当c是小写字母;

isupper(c);//当c是大写字母

isspace(c);//当c是空格,横向制表符,纵向制表符,回车符,换行符,进纸符的一种)

水平制表符就是水平空出几个格,说像一下打了几个空格一样。编程里面用“\t”表示。 垂直制表符就是垂直空出几个格,说像一下打了几个回车一样。编程里面用“\v”表示。

tolower(c);如果c是大写字母,输出对应的小写字母;否则原样输出c

toupper(c);如果c是小写字母,输出对应的大写字母;否则原样输出c

示例小程序

#include
#include
using namespace std;
int main()
{
    string str;
    cin >> str;
    char val;
    cin >> val;
    int nums;
    if(isalpha(val)){         
        val = tolower(val);  //与下面val = toupper(val)一起实现不区分大小写功能
        nums = count(str.begin(),str.end(),val);
        val = toupper(val);
        nums = nums + count(str.begin(),str.end(),val);
    }       
    cout << nums;
    return 0;
}

 

 

你可能感兴趣的:(C++,编程)