【扩展知识1】scanf("%[^n],c)和scanf("%[^ ],c)具体含义

      【扩展知识1】scanf("%[^n],c)和scanf("%[^ ],c)具体含义


     以前自己也遇到这些问题,也查了查,但慢慢的又忘了~- ~。今天又碰到,所以就把它写成篇文章吧,以供大家查阅。本文中写的内容有参考网上高手们的,我只是总结总结,谢谢。   

先看程序^_^

ONE

#include 
 
int main( void )
{
         chararray[ 100 ];
        
         printf("输入您要打印的内容:" );
         scanf("%[^ ]", array ); 
        
         printf("您输入的内容为:%s\n", array );
          
         return0;
}

TWO

#include 

int main( void )
{
	char array[ 100 ];
	
	printf("输入要打印的内容: " );
	scanf( "%s", array );  
	
	printf( "您输入的内容为: %s\n", array );
	 
	return 0;
}

解读:第一个程序使用的scanf(“%[^ ]”, array)是读入字符串直到遇到空格结束。第二个程序使用的是scanf(“%s”, array);也是遇到空格就结束。

比如输入:abcdefg abcdefg abcdefg

输出结果:abcdefg

 

THREE

#include 
 
int main( void )
{
         chararray[ 100 ];
        
         printf("输入要打印的内容:" );
         scanf("%[^\n]", array ); 
        
         printf("您输入的内容为: %s\n", array );
          
         return0;
}


解读:本程序读取字符直到遇到’\n’或回车为止。

比如输入:abcdefg abcdefg abcedef

输出结果:abcdefg abcdefg abcedef

PS输出字符串中有\n不是换行符,只能作为字符串中的一部分处理。

比如输入:abcdefg\n abcdefg abcdefg

输出结果:abcdefg\n abcdefg abcdefg

 

总结:

综合上述,我们可以知道%[^\n]和%[^ ]的含义了。符号^ 表示取反的意思。[^ ]表示除了空格,所有的字符都可以读取;[^\n]则表示除了换行符,所有的字符都可以读取。

有时候,在程序中需要读取字符串直到回车为止,也可以使用函数gets(array)读取。


【指尖的微笑】错误在所难免,希望得到大家的指正^-^

转载时请保留http://oursharingclub.joinbbs.net和 codingit.howbbs.comA 的链接,谢谢


你可能感兴趣的:(C语言基础入门)