#include<stdio.h>
int main() {
char *str, ch;
int count = 0, i;
printf("\nEnter a string : ");
scanf("%s", str);
printf("\nEnter the character to be searched : ");
scanf("%c", &ch);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == ch)
count++;
}
if (count == 0)
printf("\nCharacter '%c'is not present", ch);
else
printf("\nOccurence of character '%c' : %d", ch, count);
return (0);
}
当我执行此代码时,字符串被采用后,它不会采取任何字符并显示结果。如何读取字符串后跟c中的字符?
1)'str'不指向有效区域。 2)scanf(“%c”,&ch);' - >'scanf(“%c”,&ch);' – BLUEPIXY
'str'是一个未初始化的指针,在scanf中使用它会导致未定义的行为需要分配一个缓冲区并且首先分配给'str' – kaylum