【发布时间】:2020-07-14 17:14:24
【问题描述】:
我写了一个代码来反转一个字符串,但是strlen 函数给了我错误的字符串长度,这就是为什么字符串的反转没有正确完成。这是我写的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reversestring(char string[], int start, int end);
int main() {
char str[500];
int n;
n = strlen(str);
reversestring(str, 0, n - 1);
printf("%d\n", n);
printf("The reverse string is %s", str);
return 0;
}
void reversestring(char string[], int start, int end) {
printf("enter the string:\n");
scanf("%s", string);
int temp;
while (start < end) {
//printf("insidewhile\n");
temp = string[start];
string[start] = string[end];
string[end] = temp;
start++;
end --;
}
}
【问题讨论】:
-
小测验:
str的内容是什么?主函数中的那个,而不是反向函数中的string。 -
任何时候你发现自己想说一个基本且广泛使用的软件,比如
strlen函数,给出了错误的结果,你需要停下来告诉自己:“有些东西继续我不明白。问题出在我写的软件上。我最好弄清楚它是什么”。根据需要重复(和调试)。
标签: c reverse c-strings function-definition