Возвращение переменной из функции - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы , ,
  2. Определяется функция change с типом возвращаемого значения char* и параметром char s1[512]
  3. Внутри функции объявляются следующие переменные:
    • char s2[1024], s3[512], p1, p;
    • int k = 0, i = 0;
  4. С помощью функции strchr ищется символ '//' в строке s1, а затем с помощью функции strlen вычисляется длина строки до этого символа.
  5. С помощью функции strncpy копируется подстрока s1, начиная с символа '//' и до конца строки, в переменную s2.
  6. В переменную s3 копируется подстрока s1, начиная с позиции, следующей за символом '//', и до конца строки.
  7. С помощью функции strcat происходит объединение строк s2 и s3.
  8. С помощью функции printf выводится результат работы функции change.
  9. В функции main создается строка A[512]=qwe\nrw//erd\nfgb//dfgb.
  10. С помощью функции printf выводится содержимое строки A.
  11. Вызывается функция change с аргументом A.
  12. Результат работы функции change выводится с помощью функции printf.
  13. Запускается функция getch для ожидания нажатия клавиши.
  14. Возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы