Я пытаюсь использовать указатели и strcat из C. Это часть моего учебного процесса.
Идея состоит в том, что пользователь вводит строку, содержащую цифры, и вывод должен возвращать только цифры.
Итак, если пользователь вводит
te12abc
вывод должен быть 12
.
Это моя первая попытка:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define SIZE 10
int main()
{
char palavra[SIZE];
char palavra2[SIZE];
char *pont = palavra;
char *pont2 = palavra2;
printf("Insert the string\n");
scanf("%s", palavra);
do{
if (isdigit(*pont)){
strcat(palavra2, *pont);
}
*pont++;
}while (*pont != '\0');
printf("\nThe number is:\n%s\n", palavra2);
return 0;
}
Я считаю, что указатель работает должным образом, но не могу понять, почему не работает strcat.
Сделал вторую попытку: программа находит число, сохраняет этот символ в одной переменной и только затем пытается использовать strcat с этой переменной. Вот код:
int main()
{
char palavra[SIZE];
char palavra2[SIZE];
char temp;
char *pont = palavra;
char * pont2 = &temp;
printf("Insert the string\n");
scanf("%s", palavra);
do{
if (isdigit(*pont)){
temp = *pont;
strcat(palavra2, pont2);
}
*pont++;
}while (*pont != '\0');
printf("\nThe number is:\n%s\n", palavra2);
return 0;
}
Еще раз это вызывает у меня проблемы в strcat.
Сделал одну последнюю попытку, но без указателя и все еще strcat не работает. Вот код:
int main()
{
int i = 0;
char palavra[SIZE];
char palavra2[SIZE];
char temp;
printf("Insert the string\n");
scanf("%s", palavra);
do{
if (isdigit(palavra[i])){
temp = palavra[i];
strcat(palavra2, palavra[i]);
}
i++;
}while (palavra[i] != '\0');
printf("\nThe number is:\n%s\n", palavra2);
return 0;
}
Можете ли вы указать мне правильное направление? Не теперь, что еще я могу сделать ..
С уважением,
favolas