【发布时间】:2019-09-21 07:20:22
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string[100];
int count=0;
char *pString = string;
printf("Enter a string: \n");
scanf("%s",string);
while(*pString != '\0')
count++;
printf("String is %d characters long",count);
return 0;
}
这是我的代码。我想编写一个简单的函数来计算字符串数组中的字符数。问题是我输入字符串后它卡住了。控制台只是冻结了。它不会释放输出。
【问题讨论】:
-
你没有在 while 循环中增加指针
-
OT: about:
scanf("%s",string);1) 始终检查返回值(不是参数值)以确保操作成功。注意:scanf() 系列函数在使用 '%s' 和/或 '%[... ]' 始终包含比输入缓冲区长度小 1 的 MAX CHARACTERS 修饰符。这避免了缓冲区溢出和随之而来的未定义行为的任何可能性