提问人:3u4ia 提问时间:10/2/2023 最后编辑:3u4ia 更新时间:10/2/2023 访问量:37
追加、C 字符串和结构成员函数
Append, C-strings and struct member functions
问:
我如何将我想要的字符添加到用户输入内容的末尾。此外,一个指针被传递到 if 这根本没有帮助wordArr[]
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
struct Word {
string english;
string pigLatin;
};
void convertToPigLatin(Word wordArr[], int size){ //converts given word array into piglatin
char a = 'a';
char y = 'y';
char begins;
int i = 0;
for(int index = 0; index < size; index++){
wordArr->pigLatin[index] = wordArr->english[index];
}
for(int index = 0; index < size; index++){
if(isspace(wordArr->english[index])){
i = index - 1;
wordArr->pigLatin.append(i, 'a');
i++;
wordArr->pigLatin.append(i, 'y');
}
}
我试过在附加参数中移动什么,我还尝试做 += 运算符来显示希望它会接受我输入的任何内容,然后在它的末尾添加 ay,但它将其添加到开头而不是末尾wordArr->pigLatin += "ay";
答:
1赞
Chris Dodd
10/2/2023
#1
一些提示:
- 用。。意味着你把它当作一个指向单个对象的指针,而不是一个数组,这似乎与命名不一致。你想要。。。访问数组的第 i 个元素。
wordArr->
wordArr
Word
wordArr[i].
wordArr->pigLatin[index]
正在访问字符串中的索引的第 1 个字符,这似乎是不正确的,除非实际上是字符串的长度,而不是数组的大小(这似乎更有可能)pigLatin
size
wordArr
- 方法调用会将字符的 i 个副本追加到字符串的末尾。这似乎不太可能是你真正想要的。
pigLatin.append(i, 'a')
'a'
通常,在 C++ 中,您希望避免使用 C 构造,如原始数组和 C 字符串。你想使用(你是)而不是。std::string
std::vector
评论