Я пишу простую программу на C, которая меняет строку, беря строку из argv[1]. Вот код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* flip_string(char *string){
int i = strlen(string);
int j = 0;
// Doesn't really matter all I wanted was the same size string for temp.
char* temp = string;
puts("This is the original string");
puts(string);
puts("This is the \"temp\" string");
puts(temp);
for(i; i>=0; i--){
temp[j] = string[i]
if (j <= strlen(string)) {
j++;
}
}
return(temp);
}
int main(int argc, char *argv[]){
puts(flip_string(argv[1]));
printf("This is the end of the program\n");
}
Это в основном это, программа компилирует и все, но не возвращает строку temp в конце (просто пустое пространство). В начале он печатает temp штраф, когда он равен string. Кроме того, если я делаю символ по символу printf в temp в цикле for, правильная строка temp в напечатанной строке, то есть строка -> отменена. просто когда я пытаюсь распечатать его до стандартного (после цикла for / или в main) ничего не происходит - печатается только пустое пространство.