我正在尝试编写一个简单的循环,该循环接受一个字符串,并遍历所述字符串的每个字符,并将其存储在另一个字符串(每次都相同的字符串)中。我想使用此循环执行简单的任务,例如反向显示一个单词,或在单独的行中显示每个字符(这是下面提供的示例的来源)。我的代码是这样的:
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;
}
但是每当我使用此代码时,都会出现这些错误。
我在做什么错了?
答案 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,但是您放置了一个字符串,因此抛出了错误。