Как вывести результат функции в main?
Есть код, который выводит строки в обратном порядке :
int zerkalo (char *s){
int len = strlen(s)-1;
printf("вы ввели: ");
char*t = s + len;
for (;t>=s;t--) printf("%c",*t);
return 0;
}
int main () {
setlocale(0,"");
char vvod [50]={};
printf("Введите слово (слова, предложение)\n");
scanf("%50[^\n]s",vvod);
zerkalo(vvod);
printf("\n");
return 0;
}
Вопрос в следующем: как вывести уже измененный массив vvod, не с помощью printf("%c",*t) в функции zerkalo, а в самой функции main?
Ведь в функции zerkalo я работаю с указателями, значит после отработки данной функции, vvod в main должен по идее имеет измененное значение. Или я ошибаюсь?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Каждая функция должна заниматься своим делом. Одна разворачивает строку, другая выводит...
#include <stdio.h>
char* reverse(char* s)
{
if (s == NULL) return s;
for(char *b = s, *e = s + strlen(s) - 1;
b < e; ++b, --e)
{
char t = *b; *b = *e; *e = t;
}
return s;
}
int main ()
{
char vvod[50];
printf("Введите слово (слова, предложение): ");
scanf("%50[^\n]s",vvod);
printf("%s\n", reverse(vvod));
}