“不存在从'std :: string'到'const char *'的合适转换函数”

时间:2019-12-25 01:20:00

标签: c++ string visual-studio for-loop char

我正在尝试编写一个简单的循环,该循环接受一个字符串,并遍历所述字符串的每个字符,并将其存储在另一个字符串(每次都相同的字符串)中。我想使用此循环执行简单的任务,例如反向显示一个单词,或在单独的行中显示每个字符(这是下面提供的示例的来源)。我的代码是这样的:

string word;
string ch;
cout << "Please enter a word." << endl;
cin >> word;

int wordlength;
int i;

wordlength = size(word);

for (i = 0; i < wordlength; i++) {
    word.copy(ch, 1, i);
    cout << ch << endl;
}

但是每当我使用此代码时,都会出现这些错误。

image

我在做什么错了?

3 个答案:

答案 0 :(得分:4)

只需使用 string

#include <string>
using namespace std;
string word;
char *c;
  cout << "Please enter a word." << endl;
  cin >> word;

  int wordlength,  i;

    wordlength = word.size();

    for (i = 0; i < wordlength; ++i) {

     ch = word[i];

     cout << ch << endl;

   }

也可以word[i] = ch;

答案 1 :(得分:2)

字符串大小:

wordlength = word.size();

string :: copy应该是:

char ch;
....
word.copy(&ch, 1, i);

答案 2 :(得分:0)

从c ++参考文献中

size_t复制(char * s,size_t len,size_t pos = 0)const;

本质上来说,复制操作需要一个char指针/数组作为其第一个arg,但是您放置了一个字符串,因此抛出了错误。