Здесь я вижу две проблемы:
1) В функции getString()
вы пытаетесь читать / сканировать строку в символе, вам нужна память для хранения строки и завершающий символ, чтобы вы могли используйте любой из этих двух способов
Используйте массив символов, например char name[50];
или
Используйте указатель на символ и выделите память, используя mallo c например char *p_name = malloc(sizeof(char)*50);
2 Затем вы пытаетесь вернуть эту строку, которая хранится в локальной переменной (которая будет уничтожена, как только функция завершится), поэтому вам следует использовать второй подход (использовать mallo c) и вернуть указатель.
Ваш код будет выглядеть так:
#include <stdio.h>
#include <stdlib.h>
char * getString();
void tcount(void);
int main(void)
{
tcount();
}
void tcount(void)
{
// class scanf user input
char *p_name = getString();
printf("%s", p_name);
free(p_name);
int i = 1;
do
{
printf("T-Plus: %d\n", i);
i++;
} while( i < 51 );
}
char *getString()
{
char *p_name = malloc(sizeof(char)*50);
printf("Please a string name: \n");
scanf("%s", p_name);
return p_name;
}