#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
int i=0;
do{
scanf("%c",&a[i]); /*为什么输入6位数 ,m输出为6 但输入7位数,m输出为8*/
i++;
} while (a[i-1] != '\n' );
int m = strlen(a) - 1;
printf("%d",m);
return 0;
}
修改如下,strlen()统计到结束符为准,供参考:
#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
int i = 0;
do {
scanf("%c", &a[i]); //为什么输入6位数 ,m输出为6,但输入7位数,m输出为8
i++;
} while (a[i - 1] != '\n');
a[i - 1] = '\0'; //字符串最后结束符漏了
int m = strlen(a) - 1;
printf("%d,i=%d", m, i);
return 0;
}