Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符串中的某个字母设置为int+&引用&引用;_C++_String Substitution - Fatal编程技术网

C++ 将字符串中的某个字母设置为int+&引用&引用;

C++ 将字符串中的某个字母设置为int+&引用&引用;,c++,string-substitution,C++,String Substitution,我目前正在编写一个函数,用相应的数字加上“,”替换一行中的字母。我目前的代码是: std::string letterToNumber(std::string message) { std::string::iterator iter; toUpper(message); for (iter = message.begin(); iter != message.end(); ++iter) { for (int i = 0; i < alphabetSize; ++i

我目前正在编写一个函数,用相应的数字加上“,”替换一行中的字母。我目前的代码是:

std::string letterToNumber(std::string message) {
  std::string::iterator iter;
  toUpper(message);

  for (iter = message.begin(); iter != message.end(); ++iter) {
    for (int i = 0; i < alphabetSize; ++i) {
      if (*iter == alphabet[i]) {
        // Problem here
      }
    }
  }

  return message;
}
std::string letttonumber(std::string消息){
std::string::iter;
toUpper(消息);
for(iter=message.begin();iter!=message.end();++iter){
for(int i=0;i

(toUpper是我自己的函数)。我不太确定如何将字符串中的当前字母指定为数字+逗号。起初我试着给特定的字母分配一个数字,但我意识到我需要一个分隔符,所以我决定使用逗号

我想你想要实现的是:

std::string letterToNumber(std::string input) {
  toUpper(input);
  std::stringstream output;

  std::string::iterator it;
  for (it = input.begin(); it != input.end(); ++it) {
      if (input.begin() != it) {
        output << ",";
      }
      int letterIndex = static_cast<int>(*it) - 'A';
      output << letterIndex;
  }

  return output.str();
}
std::字符串字母编号(std::字符串输入){
toUpper(输入);
std::stringstream输出;
std::string::迭代器;
for(it=input.begin();it!=input.end();+it){
if(input.begin()!=it){

输出你能提供一个测试用例和你期望的输出吗?我不太明白你的意思。如果你输入“Hello!”它会返回“8,5,12,12,15!”来获取数字,只需使用num=message[I]-“A”;。当我使用它时,它会给我错误“c不命名类型”嗯,我猜你可能没有使用C++11。让我在11之前编辑好了!结果我的makefile在编译时没有-std=C++11选项。我想是的。如果你可以重新发布C++11版本的代码,那就太好了,或者保留这两个版本以便其他观众可以看到!谢谢!