c语言中如何在读入字符串时如何遇到指定字符结束?
3个回答
展开全部
标准C中没有提供这样的函数,可以自定义一个这样的函数,以实现getline()函数的功能。参考代码如下:
int get_str( char *s, int size, const char ch='\n' ) //如果不输入第三个参数,默认为回车符
{
int i;
for( i=0;i<size-1;i++ )
{
s[i]=getchar(); //读入一个字符
if ( s[i] == ch ) //遇到指定字符,结束输入
break;
}
s[i]='\0'; //字符串结束符
return i; //返回读入字符串数据的长度
}
void main()
{
char str[10];
get_str( str, sizeof(str), '#' ); //以#结束
printf("input is :%s\n", str );
fflush(stdin); //清除缓存中的残余数据
get_str( str, sizeof(str) ); //以回车结束
printf("input is :%s\n", str );
}
展开全部
char c;这是你指定的字符,假如是#
do
{
在这里面接收外界输入的字符,当遇到#的时候,就会退出。
}while(c!='#')
do
{
在这里面接收外界输入的字符,当遇到#的时候,就会退出。
}while(c!='#')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void main( void )
{
char buffer[81];
int i, ch;
printf( "Enter a line: " );
/* Read in single line from "stdin": */
for( i = 0; (i < 80) && ((ch = getchar()) != EOF) && (ch != '\n'); i++ )
buffer[i] = (char)ch;
/* Terminate string with null character: */
buffer[i] = '\0';
printf( "%s\n", buffer );
}
MSDN上的例子,其为:输入回车结束输入。
void main( void )
{
char buffer[81];
int i, ch;
printf( "Enter a line: " );
/* Read in single line from "stdin": */
for( i = 0; (i < 80) && ((ch = getchar()) != EOF) && (ch != '\n'); i++ )
buffer[i] = (char)ch;
/* Terminate string with null character: */
buffer[i] = '\0';
printf( "%s\n", buffer );
}
MSDN上的例子,其为:输入回车结束输入。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询