Возвращение переменной из функции - C (СИ)
Формулировка задачи:
Объявляю функцию типа char, объявляю в ней переменную s2 тоже типа char, но возвращать эту переменную функция отказывается, выдает еррор вида:
IntelliSense: return value type does not match the function type
В чем собственно беда?
Решение задачи: «Возвращение переменной из функции»
textual
Листинг программы
#include <conio.h> #include <stdio.h> #include <string.h> char* change(char s1[512]) { char s2[1024], s3[512], *p1, *p; int k = 0, i = 0; p = strchr(s1, '//'); p1 = strchr(p, '\n'); strncpy(s2, s1, strlen(s1) - strlen(p)); s2[strlen(s1) - strlen(p)] = '\0'; k = strlen(s1) - strlen(p1); strncpy(s3, s1 + k, strlen(p1)); s3[strlen(p1)] = '\0'; strcat(s2, s3); printf("%s", s2); return s2; } int main() { char A[512]="qwe\nrw//erd\nfgb//dfgb"; printf("\n%s", change(A)); getch (); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
, , - Определяется функция change с типом возвращаемого значения char* и параметром char s1[512]
- Внутри функции объявляются следующие переменные:
- char s2[1024], s3[512], p1, p;
- int k = 0, i = 0;
- С помощью функции strchr ищется символ '//' в строке s1, а затем с помощью функции strlen вычисляется длина строки до этого символа.
- С помощью функции strncpy копируется подстрока s1, начиная с символа '//' и до конца строки, в переменную s2.
- В переменную s3 копируется подстрока s1, начиная с позиции, следующей за символом '//', и до конца строки.
- С помощью функции strcat происходит объединение строк s2 и s3.
- С помощью функции printf выводится результат работы функции change.
- В функции main создается строка A[512]=
qwe\nrw//erd\nfgb//dfgb
. - С помощью функции printf выводится содержимое строки A.
- Вызывается функция change с аргументом A.
- Результат работы функции change выводится с помощью функции printf.
- Запускается функция getch для ожидания нажатия клавиши.
- Возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д