gpt4 book ai didi

C 代码无法运行但没有错误

转载 作者:行者123 更新时间:2023-11-30 20:26:55 24 4
gpt4 key购买 nike

我正在编写以下代码来反转字符串,而不反转单词。例如I/P:这是斯巴达O/P:斯巴达就是这样

代码如下:

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

void main()
{
char a[50],b[50];
int i,j,k,l;
printf("Enter a string: ");
scanf("%[^\n]s",a);
l=strlen(a);
i=0;j=l-1;
ae:
for(i;;i++)
if(a[i]==' ' || a[i]=='\0')
break;
k=i;
for(j;;j--,k--)
{
if(a[k]==' ' || k==0)
break;
else
b[j]=a[k-1];
}
if(strlen(b)!=l) goto ae;
else
printf("%s",b);
getch();
}

此代码运行时没有错误,但在接受字符串后,它根本不再继续。终端有点挂了。我不知道出了什么问题。请帮忙。

最佳答案

如果输入的字符串包含空格,则这是一个无限循环。

  1. 迭代字符串a,直到a[i] == ' '
  2. k = i;
  3. 立即跳出第二个 for 循环,因为 a[i] == ' 'k == i 暗示 a[k] == ' '.
  4. b 未初始化,但 strlen(b) != l 为真的概率很高,因此分支 goto ae; 将是并关闭无限循环。

关于C 代码无法运行但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442636/

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