Я пытаюсь понять, как передать строку в качестве параметра, а затем вернуть другую строку в C. Я практикую, просто добавляя тест. Это для проекта, в котором я застрял, где мне нужно сделать некоторую проверку на строку и захотеть сделать это в отдельной функции. Очевидно, что мой пример более сложный, чем должен быть, но мне нужно знать, как манипулировать строкой, которая была передана как параметр, а затем вернуть ее как другую строку.Как передать строку в качестве параметра, а затем вернуть строку в C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void stringCopy(char *);
int main()
{
char delay;
char string[10];
printf("Enter the string: ");
scanf("%s", string);
char newString[20];
strcat(newString, stringCopy(string));
printf("String: %s", newString);
delay = getchar();
delay = getchar();
}
/*char stringCopy(char *str)
{
char string2[20] = "test";
strcat(string2, str);
return string2;
}*/
char* stringCopy(char *str)
{
char *string2 = malloc(sizeof(char)*20);
strcpy(string2,"test");
strcat(string2, str);
return string2;
}
Вот мой код для моей небольшой учебной программы заблаговременно за любую помощь.
** отредактирован, чтобы показать изменения. Я просто не знаю, как получить доступ к новому новому (string2) в main().
edit2: Я просто не могу получить его. Тем не менее, я очень благодарен всем. Действительно расстраивает. Я буду продолжать попытки, но я даже не понимаю, почему я получаю ошибки или как получить доступ к моей новой строке в main().
edit3: im идиот, у меня было расширение файла как .cpp, а не как .c.
В чем проблема? Получаете ли вы неправильные результаты? – Benesh
Я не знаю, как получить доступ к новой строке (string2) в main() – user2976759
Просто сохраните функцию return в переменной 'char *'. Затем используйте его, как и любую другую строку. Не забудьте 'free()' it. – Deduplicator