c语言中如何在读入字符串时如何遇到指定字符结束?

 我来答
kaixingui2012
推荐于2017-09-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6447万
展开全部

标准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 );
}
来自月岩仪态万千的比目鱼
2012-11-09 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:971万
展开全部
char c;这是你指定的字符,假如是#
do
{
在这里面接收外界输入的字符,当遇到#的时候,就会退出。
}while(c!='#')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月下倚楼的知识仓库
2012-11-06 · 超过12用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:27万
展开全部
#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上的例子,其为:输入回车结束输入。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式