追加、C 字符串和结构成员函数

Append, C-strings and struct member functions

提问人:3u4ia 提问时间:10/2/2023 最后编辑:3u4ia 更新时间:10/2/2023 访问量:37

问:

我如何将我想要的字符添加到用户输入内容的末尾。此外,一个指针被传递到 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";

数组 C-strings 指针到成员

评论

0赞 Raymond Chen 10/2/2023
您应该熟悉学校的学术诚信规则。我认为大多数学校在新生入学培训中都涵盖了这一点。
0赞 Wyck 10/2/2023
我认为你应该从你的问题中完全删除关于学术诚信规则的部分。它不会增加你的问题的价值,并引发不必要的争论。编辑您的问题并删除“...我怎样才能添加什么字符”。

答:

1赞 Chris Dodd 10/2/2023 #1

一些提示:

  • 用。。意味着你把它当作一个指向单个对象的指针,而不是一个数组,这似乎与命名不一致。你想要。。。访问数组的第 i 个元素。wordArr->wordArrWordwordArr[i].
  • wordArr->pigLatin[index]正在访问字符串中的索引的第 1 个字符,这似乎是不正确的,除非实际上是字符串的长度,而不是数组的大小(这似乎更有可能)pigLatinsizewordArr
  • 方法调用会将字符的 i 个副本追加到字符串的末尾。这似乎不太可能是你真正想要的。pigLatin.append(i, 'a')'a'

通常,在 C++ 中,您希望避免使用 C 构造,如原始数组和 C 字符串。你想使用(你是)而不是。std::stringstd::vector