在 C++ 中将一个句子传递给一个字符数组

Pass a sentence to a char array in c++

我如何将带有空格和大小写字母的句子作为 char 数组的输入,例如 char arr[]。有什么办法可以不使用 cstring 库吗?

#include <iostream> 
using namespace std; 
  
int palindrome(char arrC[], int indexS, int indexE) 
{ 

    if(indexS>=indexE)
        return 1;
    if(arrC[indexS] == arrC[indexE])
        return palindrome(arrC, ++indexS, --indexE);
    else 
        return 0;
} 
  
// Driver code 
int main() 
{ 

    //string arrC = "A man a plan a canal Panama";
    char arrC[50]; //= { 'c', 'i', 'v', 'i', 'c' };
    cout<<"Enter your string: "<<endl;
    getline(cin, arrC);
    int size = sizeof(arrC) / sizeof(arrC[0]); 
    if(palindrome(arrC, 0, --size)==true)
        cout << "The string is a palindrome!" << endl;
    else
        cout << "The string is not a palindrome. It's just a regular string." << endl;
  
    return 0; 
} 

这是它给出的错误

简单的方法就是使用std::cin.getline(),使用方法如下:

  • 它的第一个参数应该是你想要存储输入的 c 风格字符串数组。
  • 传入的第二个参数应该是要写入的最大字符数'your first argument'(包括终止空字符)。

这是我快速制作的示例:

#include <iostream>
int main() {

    char my_arr[100]{};
    std::cin.getline(my_arr, 100);


    system("pause");
    return 0;
}