gpt4 book ai didi

c - 反转字符串功能无法正常工作

转载 作者:行者123 更新时间:2023-11-30 19:14:17 26 4
gpt4 key购买 nike

这是我的代码。我只是似乎无法弄清楚。有时我没有得到任何输出,有时我只得到 3 个随机字符,无论输入的字符串有多长。

#include <stdio.h>
#include <math.h>
#include <string.h>

void reverse(char* array, int numberOfChars);

int main()
{
char string[250];
int length;
printf("Enter a string: ");
gets(string);
printf("How long is the string:");
scanf("%d", &length);
reverse(string, length);
printf("Reversed string is: %s\n"), string;

return 0;
}

void reverse(char *userArray, int numberOfChars)
{
char temp;
int fromEnd = 0, fromStart = 0;

fromEnd = numberOfChars;
while (fromStart < fromEnd)
{
temp = userArray[fromStart];
userArray[fromStart] = userArray[fromEnd];
userArray[fromEnd] = temp;
fromStart++;
fromEnd--;

}
}

我真的很害怕在这里问这些问题,但我似乎无法解决它......任何帮助表示赞赏

最佳答案

从概念上讲,您需要交换两端,直到剩下长度为 0 或 1 的字符串。但是,您不需要在每次迭代后测试字符串剩余部分的长度,因为它可以显示正好需要 length/2 交换。

void reverse (char *s)
{
size_t length = strlen (s);

for (size_t i = 0; i < length / 2; i++) {
char tmp;

tmp = s[i];
s[i] = s[length - 1 - i];
s[length - 1 - i] = tmp;
}
}

关于c - 反转字符串功能无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com