头文件 <cctype>处理string单个字符
如何处理单个字符
方法一: 用for 循环
string s;
for(auto c: s)
方法二:用下标
s[i]
/* isalnum example */
#include <stdio.h>
#include <ctype.h>
int main ()
{
int i;
char str[]="c3po...";
i=0;
while (isalnum(str[i])) i++;
printf ("The first %d characters are alphanumeric.\n",i);
return 0;
}
isalnum(c) // 当c是字母或者数字时为真
isalpha(c) //当c是字母时为真
iscntrl(c) // 当c是数字时为真
isgraph(c) // 当c不是空格但可打印时为真
isdigit(c) // 当sc是数字时为真
islower(c) // 当c是小写字母时为真
isprint(c) // 当cs是可打印字符时为真(即c是空格或c具有可视形式)
ispunct(c) // 当c是标点符号时为真(即c不是控制字符,数字,字母,可打印空白中的一种
isspace(c) // 当c是空白时为真(即c是空格,横向制表符,纵向制表符,回车符,换行符的一种)
isupper(c) // 当c是大写字母时为真
isxdigit(c) // 当c是16进制数字时为真
tolower(c) //如果c是大写字母,输出对应小写字母否则原样输出c
toupper(c) // 如果c是小写字母,输出对应大写字母否则原样输出c
输入0到15的数字 获取对应的16进制 按回车退出
没有判断条件 if (cin.get() == '\n') 会进入死循环
#include <string>
#include <iostream>
int main () {
const std::string hexdigits = "0123456789ABCDEF";
std::cout << "输入0到15之间的数字:"/*<<std::endl;*/;
std::string result; // 用于保存16进制的字符串
std::string::size_type n; // 用于保存从输入流读取的数
while (std::cin>>n) {
if (n < hexdigits.size())
result += hexdigits[n];
if (cin.get() == '\n') {
break;
}
}
std::cout << "16进制对应的数为:"<< result <<std::endl;
return 0;
}