在 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;
}
我如何将带有空格和大小写字母的句子作为 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;
}