For loop 如何使用for循环替换字符?

For loop 如何使用for循环替换字符?,for-loop,For Loop,我遇到的问题是for循环没有检查整个单词。相反,它只在提供的索引处检查,我需要它能够检查任何单词中这些字母的任何实例,并用相应的符号替换它们。我该如何检查整个单词以查找我要更改的字母。这就是我目前所能得到的: cout << "Enter word: "; cin >> userInput; cout << "You entered: " ; cin >> userInput; for (unsigned i=0; us

我遇到的问题是for循环没有检查整个单词。相反,它只在提供的索引处检查,我需要它能够检查任何单词中这些字母的任何实例,并用相应的符号替换它们。我该如何检查整个单词以查找我要更改的字母。这就是我目前所能得到的:

 cout << "Enter word: ";
   cin >> userInput;
   cout << "You entered: " ;
   cin >> userInput;

   for (unsigned i=0; userInput.size() > i; i++){
      if (userInput.at(0)=='a'){
        userInput.at(0)=='@';
      }
      if (userInput.at(1)=='e'){
        userInput.at(1)=='3';
      }
      if (userInput.at(2)=='i'){
        userInput.at(2)=='!';
      }
       if (userInput.at(3)=='g'){
         userInput.at(3)=='9';
      }
       if (userInput.at(4)=='s'){
         userInput.at(4)=='$';
      }
       if (userInput.at(5)=='x'){
     userInput.at(5)=='*';
      }

   }
   cout << "New word: ";
   cout << userInput;
cout>userInput;
cout>userInput;
for(无符号i=0;userInput.size()>i;i++){
if(userInput.at(0)='a'){
userInput.at(0)='@';
}
if(userInput.at(1)='e'){
userInput.at(1)='3';
}
if(userInput.at(2)='i'){
用户输入。at(2)='!';
}
if(userInput.at(3)='g'){
userInput.at(3)='9';
}
if(userInput.at(4)='s'){
userInput.at(4)='$';
}
if(userInput.at(5)='x'){
userInput.at(5)='*';
}
}

cout看起来您正试图用@来替换所有的“a”,等等。在编写代码时,它只考虑A- > @替换的第一个字符,第二个字符具有E-> 3替换等。 一些快速的事情。使用
==
测试是否相等。您最初确实希望测试是否相等,但稍后还希望执行赋值(
=

第二,你可能想一个字符一个字符地看。根据要替换的值测试每个字符。
userInput.at(i)
处的值是循环迭代的字符

   for (unsigned i=0; userInput.size() > i; i++) {
      // Note, we're indexing based on the variable i, 
      // instead of a hard-coded number value
      if (userInput.at(i) == 'a') {

        // Note the single = on the line below
        userInput.at(i) = '@';
      }

      if (userInput.at(i) == 'e') {
        userInput.at(i) = '3';
      }

      // and so on
   }

什么是“提供的索引?”谢谢!我现在明白了。