gpt4 book ai didi

c - 将空字符写入函数中的数组时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:19:52 25 4
gpt4 key购买 nike

<分区>

我已经做了很多挖掘,但似乎找不到与我遇到的问题类似的问题。

我通过一个函数传递一个字符串,该函数被放入一个 char 数组,然后它查看这个 char 数组以查看第一个非十进制值在哪里,并在那里放置一个空字符。它通过将数组的值与 0-9 的 ascii 值进行比较来实现这一点。我的源代码给我一个段错误,但是如果我通过主要功能运行所有内容它工作正常并且我的结果符合预期?有任何想法吗?我的源代码在下面

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

int try_null (char []); //function prototype

int main ()
{

printf("length is %d\n", try_null("123.txt"));


//This part doesn't give me a segmentation fault
/*char a [10];
strcpy(a, "123.txt");
int counter = 0, length = strlen(a);

for (counter = 0; counter < length; ++counter)
{
if ( (a[counter] >= 48) && (a[counter] <= 57) ); //if the value is a decimal leave it
else
a[counter]='\0'; //replace the first non decimal value with a null
}
length=strlen(a);
printf("%d\n", length); */

}

try_null(char value [10])
{
int counter, length = strlen(value); //find the current length of the array
printf("value is %d\n", length);

for (counter = 0; counter < length; ++counter)
printf("value is %c\n", value[counter]);

//getting rid of non-decimals
for (counter = 0; counter < length; ++counter)
{
if ( (value[counter] >= 48) && (value[counter] <= 57) ); //if the value is a decimal leave it
else
{
value[counter]='\0'; //replace the first non decimal value with a null


}
}
length=strlen(value);
return length;
}

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