gpt4 book ai didi

c - 字符串中的只读变量在 for 循环 C 中不可分配

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

程序从输入中获取一个字符串,并在另一个输入的字符串中查找该字符串中的第 n 个字符。如果第一个字符串中的第一个字符在第二个字符串中,程序将输出该字符,如果不是,则不会打印任何字符匹配。程序如下所示:

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

int main(){
const char s[1000], i;

printf("Enter a string: ");
scanf("%s", s);

const char str1[1000];

printf("Enter a string: ");
scanf("%s", str1);

// int b;

for(i = 0; str1[i] != '\0'; ++i){
b = i;
}

for(i = 0; i < b; i++){
char *ret;
ret = strpbrk(s, s[i]);
if(ret)
{
printf("First matching character: %c\n", *ret);
}
else
{
printf("no char match \n");
}
}
return(0);
}

错误出现在 for 循环和状态中:

error: read-only variable not assignable

此外,错误指出:

note: passing argument to parameter here

最佳答案

for循环之前你就遇到了问题。

 scanf("%s", s);
scanf("%s", str1);

显然

for ( i = 0; ...; ++i

无效,因为您试图写入(即修改内容)使用 const 类型限定符定义的对象。它们应该表现为常量,即,这些值不应该被更改,因此它们不能被更改或改变,只能被初始化。

修复:从两组变量定义中删除 const

关于c - 字符串中的只读变量在 for 循环 C 中不可分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523444/

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