我是C ++的初学者。我正在尝试使用C ++中的字符数组。所以,我写了这段代码。
#include <iostream>
using namespace std;
//Main Function
int main()
{
//Variable declaration
char First[30];
char Middle[30];
char Last[40];
//Array to store all names
char Name[70];
//Loop variables
int i = 0, j = 0;
//Reading all the name
cout << "Enter First name: ";
cin >> First;
cout << "Enter Middle name: ";
cin >> Middle;
cout << "Enter Last name: ";
cin >> Last;
//Copies all characters of Last name to fourth array
while (Last[i] != '\0')
{
Name[j] = Last[i];
i++;
j++;
}
//placing a comma in the fourth array and adding a space
Name[j] = ',';
j++;
Name[j] = ' ';
j++;
cout<<"Hello1\n";
//Copies all characters of First name to fourth array
i = 0;
while (First[i] != '\0');
{
Name[j] = First[i];
i++;
j++;
}
//Add a space
Name[j] = ' ';
j++;
cout<<"Hello2\n";
//Copies all characters of Middle name to fourth array
i = 0;
while (Middle[i] != '\0');
{
Name[j] = Middle[i];
i++;
j++;
}
Name[j] = '\0';
//Display the fourth array
cout << Name << endl;
}
此代码的问题是我要打印的全名 Name []数组。但是仅在打印“ Hello1”后卡住了。 它在“ Hello1”之后不打印任何内容。它正在接受所有输入 三个名称(在First [],Middle []和Last []中)正确。所以我 决定从第1行中找出我的代码。我知道有 在第一次while循环后出现一些问题,因为我正在尝试打印“ Hello1” 和“ Hello2”。问题是它正在正确打印“ Hello1” 但它因“ Hello2”而卡住。我认为有一些问题 第2个while循环。但是我没有得到错误我该如何解决 这个。
请对此提供帮助,以便可以打印全名 正确。
答案 0 :(得分:8)
好吧,问题是您的while循环,您犯了一个错误,那就是在其末尾放置; ,这是在进行无穷循环,并且永远不会发生第二次问好。 >
//Copies all characters of First name to fourth array
i = 0;
while (First[i] != '\0'); // <- Here is your problem
应为:
//Copies all characters of First name to fourth array
i = 0;
while (First[i] != '\0') { // <- Here is your problem
感谢Gilles-PhilippePaillé指出,在第三个while循环中也有一个分号,应该删除:D