Возвратить строку из функции - C (СИ)
Формулировка задачи:
Привет Всем! Пытаюсь разобраться с тем как можно возвратить строку из функции собственно вот мой код
собственно компилируется без ошибок, но когда запускаю, ошибка выскакивает (Программа завершена и искать решение проблемы в интеренете)
А я хочу чтобы в number была строка temp;
помогите кто может оч хочется разобраться никак не получается...
Всем спасибо заранеее
#include <stdio.h> char *match(char *s); int main() { /* this file with phone number*/ FILE *in; FILE *out; char str[50], *number; char *estr; /* if me need to input name file from console */ /* if(argc!=3) { printf("Вы забыли ввести имя файла.\n"); exit(1); } if((in=fopen(argv[1], "r+b"))==NULL) { printf("Нельзя открыть исходный файл.\n"); exit(1); } if((out=fopen(argv[2], "w")) == NULL) { printf("Нельзя открыть файл результатов.\n"); exit(1); } */ if ((in = fopen("phoneIn.txt","r+b"))==NULL) { printf("mistake open file with phone number.\n"); exit(1); } /* this file for output */ if ((out = fopen("phoneOut.txt","w"))==NULL) { printf("mistake create file with validated phone number.\n"); exit(1); }; while (1) { // Чтение одной строки из файла estr = fgets (str,sizeof(str),in); //Проверка на конец файла или ошибку чтения if (estr == NULL) { // Проверяем, что именно произошло: кончился файл // или это ошибка чтения if ( feof (in) != 0) { //Если файл закончился, выводим сообщение о завершении //чтения и выходим из бесконечного цикла printf ("End of read file\n"); break; } else { //Если при чтении произошла ошибка, выводим сообщение //об ошибке и выходим из бесконечного цикла printf ("Mistake of reading fom file\n"); break; } } printf("%s\n",str); //Если файл не закончился, и не было ошибки чтения //выводим считанную строку на экран number = match(str); } fclose(in); fclose(out); return 0; } char *match(char *str) { char ArrForConformity[] = {'0','1','2','3','4','5','6','7','8','9'}; int i, j; char temp[10]; for (j = 0; j <= sizeof (str) / sizeof (str[0]) - 1; j++) { for( i = 0; i <= sizeof (ArrForConformity) / sizeof (ArrForConformity[0]) - 1; i++ ) { printf(str[j]); exit(); if(str[j] == ArrForConformity[i]) { strcat(temp, str[j]); break; } } } return temp; }
Решение задачи: «Возвратить строку из функции»
textual
Листинг программы
*temp = str[j]; temp++;
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Переменная
temp
инициализируется значениемstr[j]
. - Значение переменной
temp
увеличивается на единицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д