gpt4 book ai didi

c - 段错误,我不知道为什么

转载 作者:行者123 更新时间:2023-11-30 21:06:17 24 4
gpt4 key购买 nike

我的老师告诉我们写一个程序,在取出连续的空格后给出字符串的长度,并且只使用一个空格。例如,如果我写“hello(space)(space)(space)world”,它应该返回“hello world”,长度应该是11。问题是我不断遇到段错误,但我不知道为什么?有人可以向我解释一下吗?顺便谢谢!

int limpaEspacos (char t[]){

int i, j, w=0;
char c;
for(i=0;t[i];i++){

t[w]=t[i];
w++;

for(j=i;t[j];j++,i++){

if (t[j]!=' ') {break;}
}
}

t[w]='\0';

return w;
}


int main () {
int a;

a= limpaEspacos ("b ruh");

printf("%d\n", a );

return 0;

}

最佳答案

"b ruh" 是一个常量字符串文字,您无法修改它。这就是您遇到段错误的原因。

下面是更正后的颂歌,现在可以使用了:

#include <stdio.h>
#include <stdlib.h>

int
limpaEspacos (char t[])
{

int i, j, w = 0;
char c;
for (i = 0; t[i]; i++)
{

t[w] = t[i];
w++;

for (j = i; t[j]; j++, i++)
{

if (t[j] != ' ')
{
break;
}
}
}

t[w] = '\0';

return w;
}


int
main ()
{
int a;
char str[100] = "b ruh"; // code change
a = limpaEspacos (str);

printf ("%d\n", a);

return 0;

}

关于c - 段错误,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49693196/

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