将矢量元素分配给字符变量

Assign Vector element to a char variable

本文关键字:字符变量 分配 元素      更新时间:2023-10-16

我有一个像这样的字符串"快乐的日子"。

最初,我将此字符串转换为字符数组。之后,我将每个 char 数组元素分配给一个 char 变量,然后我曾经通过这样的检查来检查每个字符是否是 ASCII 字符:

             input character <127 && input character >=0 
现在不是做

一个字符数组,而是做一个字符向量。现在我想做同样的事情,我想使用 vector.at(计数器) 访问向量的特定元素。在此之后,我想将此值分配给 char 变量并像上面一样进行 ASCII 检查。但是当我这样做时,它会给我很多错误。

这是将向量元素值分配给 char 变量的正确方法吗?我做错了什么吗?

你要求这样的东西(未经测试):

std::string str("HappyDays");
std::vector<char> vec(str.begin(), str.end());
for (int i = 0; i < vec.size(); ++i) 
{ 
  char c = vec.at(i);
  if (c < 127 && c >=0) 
  { 
     std::cout << "character " << c << " is ASCII according to OPn"
  }
}

但这也适用于:

std::string str("HappyDays");
for (auto c: str) 
{ 
  if (0 <= c && c <= 127) 
  { 
     std::cout << "character " << c << " is ASCIIn"
  }
}

使用迭代器:

std::string str("HappyDays");
for (auto it = str.begin(); it != str.end(); ++it) 
{ 
  char c = *it;
  if (0 <= c && c <= 127) 
  { 
     std::cout << "character " << c << " is ASCIIn"
  }
}