Эта программа должна вводить имя someones и выводить ее как «Last, first middle». Предполагается, что имена хранятся в трех разных массивах, а их четвертый массив для полного имени в конце. Я также должен использовать strncpy и strncat для построения четвертого массива. Моя проблема заключается в том, что я не знаю, что будет использовать strncpy в этой ситуации и как ее использовать. Я могу заставить программу сказать «first middle last», но не правильный вывод. Другой вопрос, им того, как цикл в то время, как предполагается, чтобы позволить пользователю говорить «Q» или «Q» и выйти из программы, но это не делает этоC++ c-strings, strncat, strncpy
#include <iomanip>
#include <iostream>
#include <cctype>
using namespace std;
int main()
{
char replay; //To hold Q for quit
const int SIZE = 51;
char firstName[SIZE]; // To hole first name
char middleName[SIZE]; // To hold middle name
char lastName[SIZE]; // To hold last name
char fullName[SIZE]; //To hold the full name
int count = 0;
int maxChars1;
int maxChars2;
cout << "Enter Q to quit or enter your first name of no more than " << (SIZE - 1)
<< " letters: ";
cin.getline(firstName, SIZE);
while(firstName[SIZE] != 'Q' || firstName[SIZE] != 'q')
{
cout << "\nEnter your middle name of no more than " << (SIZE - 1)
<< " letters: ";
cin.getline(middleName, SIZE);
cout << "\nEnter your last name of no more than " << (SIZE - 1)
<< " letters: ";
cin.getline(lastName, SIZE);
maxChars1 = sizeof(firstName) - (strlen(firstName) + 1);
strncat(firstName, middleName, maxChars1);
cout << firstName << endl;
maxChars2 = sizeof(lastName) - 1;
strncpy(firstName, lastName, maxChars2);
lastName[maxChars2] = '\0';
cout << lastName << endl;
}
system("pause");
return 0;
}
Если C++, не используйте 'char *', а 'std :: string'. Если C, не используйте 'std :: cin', а' fgets() '. – 2013-04-23 16:21:01
Подсказка: ваш код должен собрать результат в 'fullName'. Который, возможно, должен быть определен достаточно большим, чтобы содержать все три компонента, но опять же, если он был достаточно большим, то не было бы смысла использовать функции 'strn', поэтому вы не узнали бы, что это упражнение должно научить вас , –
@Steve Jessop Но зачем вообще использовать strncpy или strcpy? – user1807815