#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void get_name();
void display_name(char *fullname);
int main(void)
{
char first[80];
char second[80];
char *fullname[80];
get_name();
display_name(*fullname);
system("pause");
return 0;
}
void get_name()
{
char first[80];
char second[80];
char *fullname[80];
printf("Please enter first name: ");
scanf("%s", &first);
printf("\nPlease enter last name: ");
scanf("%s", &second);
strcpy(*fullname, first);
strcat(*fullname, " ");
strcat(*fullname, second);
printf("\n\nFull name is : %s ", *fullname);
}
void display_name(char *fullname)
{
int index;
char check;
int count=0;
printf("\n\nFull name is : %s ", fullname); //check to see if string is passes correctly
for(index=0; fullname[index] != '\0'; index++)
{
check=fullname[index];
if(check != ' ')
{
count++;
}
}
printf("\n\nNumber of characters in string is: %i\n", count);
}
im пытается отправить строку из get_name(), чтобы отобразить имя для подсчета количества символов. Каждый раз, когда я передаю строку, ее выходят как тарабарщина. Я ошибаюсь? Мне нужно использовать одну функцию для получения имени и фамилии и конкатенации полного имени, а затем использовать другую функцию для подсчета количества символов.Передача строки на главную по функции
Почему массив указателей? 'char * fullname [80];' -> 'char fullname [160];', 79 + 79 + 1 пробел + конечный NUL –
[Function Parameter] (http://stackoverflow.com/documentation/c/1006/function-parameters # t = 201611180623366898669) – Danh
'get_name' не изменяет переменную' fullname' внутри main, поэтому 'display_name' передается неинициализированный массив символов, следовательно, тарабарщина. – acraig5075