Как написать функцию, которая возвращает строку в Си?
Подскажите, пожалуйста, как работает моя функция Change? То есть я передаю туда строку, провожу манипуляции с массивом(?) и возвращаю строку как char*. Как это происходит? Почему нельзя указать тип возвращающего значения char и в аргументе char * arr[]? В моей теории я должен передать функции адрес строки и напрямую работать с ней.
#include <stdio.h>
char* Change(char arr[], int n){
//код
}
return arr;
}
int main(){
int i=0;
char str[20];
gets(str);
while(str[i]!=0){
i++;
}
puts(Change(str, i));
return 0;
}
В чем ошибка, если я напишу, например, так:
#include <stdio.h>
char Change(char* arr[], int n){
//код
}
return arr;
}
int main(){
int i=0;
char str[20];
gets(str);
while(str[i]!=0){
i++;
}
puts(Change(str, i));
return 0;
}