你看,这么多错误,肯定是你的书有问题呗,
得扔!
我用
标准的C语言写段代码给你,仅供参考,因为你用的是VC,它
不支持标准的C语言
程序代码:
#include <stdio.h>
#include <string.h>
int main( void )
{
size_t len = 0;
puts( "Enter your name and press <Enter>:" );
for( char buf[257]; fgets(buf,sizeof(buf),stdin); ) // 这个char buf[257]可以改大(效率高),可以改小(耗费内存少),因为它只是个缓冲而已
{
size_t n = strlen( buf );
len += n;
if( buf[n-1] == '\n' )
{
--len;
break;
}
}
printf( "Your name has %zu characters and spaces!\n", len );
return 0;
}
一定要用C也可以,得将自己改烂
程序代码:
#include <stdio.h>
#include <string.h>
int main( void )
{
size_t len = 0;
char buf[257]; // 这个char buf[257]可以改大(效率高),可以改小(耗费内存少),因为它只是个缓冲而已
puts( "Enter your name and press <Enter>:" );
for( ; fgets(buf,sizeof(buf),stdin); )
{
size_t n = strlen( buf );
len += n;
if( buf[n-1] == '\n' )
{
--len;
break;
}
}
printf( "Your name has %llu characters and spaces!\n", (unsigned long long)len );
return 0;
}
事实上,如果只是求名字长度的话,更本就不需要存储名字
程序代码:
#include <stdio.h>
int main( void )
{
int a, b;
puts( "Enter your name and press <Enter>:" );
scanf( "%n%*[^\n]%n", &a, &b );
printf( "Your name has %d characters and spaces!\n", b-a );
return 0;
}
[此贴子已经被作者于2016-5-25 15:46编辑过]