+ 6
C Challenge Question
Why it gives no output, #include <stdio.h> #include <string.h> int main() { char str[10]; char *s = "string"; int length = strlen(*s); for(int i=0; i<length; i++) str[i] = s[length - i]; printf ("%s",str); return 0; }
2 ответов
+ 4
It is because you're copying '\0' into str[0]. That means strlen(str) will be 0. In other words, str is empty and there's nothing to print.
int length = strlen(*s); // should be without the * also.
Below is an updated version that reverses the string as you likely want:
#include <stdio.h>
#include <string.h>
int main() {
char str[10];
char *s = "string";
int length = strlen(s);
str[length] = '\0'; // mark end of string.
for(int i=0; i<length; i++)
str[i] = s[length - i - 1];
printf ("%s",str);
return 0;
}
+ 2
Thank you.