在处理 C 字符串时,如何将用户的第一个输入替换为当前输入

how do I replace the user first input with current input when dealing with c-string

本文关键字:输入 第一个 替换 用户 字符串 处理      更新时间:2023-10-16

我在尝试用其他用户输入替换用户输入时遇到问题。

例如,如果用户输入"我

爱狗",然后我们问他们是否要输入其他字符串,他们输入"我吃了很多冰淇淋"。

如何将用户的第一个输入替换为当前输入?

// Function Prototype
int countVowels(char * str);
int countCons(char * str);
int main()
{
const int SIZE = 81;          // Max size of the array
                              //const int V_SIZE = 6;         // Size of the vowel array
char newSentence[SIZE];
char userString[SIZE];
//char vowels[V_SIZE] = {'a', 'e', 'i', 'o', 'u'};
char choice;                  // To hold the menu choice
char *strPtr = userString;    // Declare and initialize the pointer
char *sentPtr = newSentence;
                              // Get the string from the user
cout << "Please enter a string. (Maximum of 80 characters) :nn";
cin.getline(userString, SIZE);
do{
    // Display the menu and get a choice
    cout << "nnA. Count the number of vowels in the string n";
    cout << "B. Count the number of consonants in the string n";
    cout << "C. Enter another string n";
    cout << "D. Exit the program nn";
    cout << "Please make your selection: ";
    cin >> choice;
    // Menu selections
    if (tolower(choice) == 'a')
    {
        countVowels(userString);
        cout << "This string contains " << countVowels(userString);
        cout << " vowels. n";
    }
    else if (tolower(choice) == 'b')
    {
        countCons(userString);
        cout << "This string contains " << countCons(userString);
        cout << " consonants. n";
    }
    else if (tolower(choice) == 'c')
    {
        cout << "Please enter other string: ";
        cin.getline(newSentence, SIZE);
        userString.replace();
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), 'n');
    }
    else
    {
        system("PAUSE");
        return 0;
    }
} while (choice != 'D');
}

我在菜单选择 C 时遇到问题。如何将 userString 替换为 newSentence?

我希望不需要两个数组声明来实现您的目的。 而不是cin.getline(newSentence, SIZE); 使用 cin.getline(userString, SIZE); 它将通过覆盖来保存新字符串。

else if (tolower(choice) == 'c')
{
    cout << "Please enter other string: ";
    cin.getline(userString, SIZE);
    cin.clear();
    cin.ignore(numeric_limits<streamsize>::max(), 'n');
}

如果你看别的东西,定义它。

C 中有一个内置函数,称为 strcpy 用另一个字符串覆盖一个字符串。

strcpy(userString, newSentence);

左侧的字符串现在将成为 newSentence 字符串。