程序从输入中获取一个字符串,并在另一个输入字符串中查找字符串中的第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-loops和states中:
错误:只读变量不可分配
此外,错误说明:
注意:将参数传递给参数
答案 0 :(得分:3)
for
循环之前您遇到了问题。
scanf("%s", s);
scanf("%s", str1);
显然
for ( i = 0; ...; ++i
无效,因为您正在尝试写入(,即修改的内容)对象,其中使用const
类型限定符定义。它们应该表现为常量,即不应该更改这些值,因此它们不能被更改或更改,只能初始化。
修复:从两组变量定义中删除const
。