String字符

本文介绍了如何使用C++标准库中的<cctype>头文件处理单个字符,包括使用for循环遍历和字符下标,并展示了如何通过输入获取16进制数字并转换为字符串。同时涵盖了字符分类函数如isalnum、isdigit等实用应用。
摘要由CSDN通过智能技术生成

头文件 <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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值