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

如题所述

标准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 );
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-09
char c;这是你指定的字符,假如是#
do
{
在这里面接收外界输入的字符,当遇到#的时候,就会退出。
}while(c!='#')
第2个回答  2012-11-06
#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上的例子,其为:输入回车结束输入。本回答被网友采纳

C语言:若字符串读入过程中发生错误或遇到文件结束,则表示输入结束、这一...
1、fgetc && fputc 函数 fgetc()函数包含在C语言中的stdio.h头文件中,函数原型:int fgetc(FILE *fp);函数功能:从流中读取字符,即从fp所指定的文件中取得下一个字符。这里需要注意,在每取完一个字符时fp会自动向下移动一个字节。这样编程时,程序员就不用再对fp控制了。这种功能在许多读写函...

C语言fgets函数读取文件,为何以行判断字符串结束
fgets()如果读入的是换行符,它将作为字符串的一部分(这与gets()不同)。但当fgets()被中断(如,遇到文件结尾),则这个字符串是空的。

...文件中读取某些数据,这些数据在一些特定的字符串后面。
函数第一次调用需设置两个参数,strtok(str,",") str需要分割的串 “,”根据,分割 第一次分割的结果,返回串中第一个,之前的字串,也就是上面的程序第一次输出abc 第二次调用该函数strtok(NULL,"."),第一个参数设置为NULL,第二个参数还是分割的依据 结果返回分割依据后面的字串,即上面的程...

C语言问题,输入一串字符时,scanf和getchar是分别读到什么结束?
scanf 可以一次读取一个字符串或多个字符串 它是读取输入缓冲区,当输入回车后 才开始执行读取 如果是一次读入多个字符串,读取字符串的结束 和读入格式有关系 例如:scanf("%s %s",s1,s2) 执行时 遇到空格符后S1结束,剩余的字符串就给S2了 scanf("%s,%s",s1,s2) 这个输入字符串时,需要用逗号...

C语言如何从文件读入一个带空格的字符串?不知道具体长度,以回车终止...
用fgets就可以了 原型是char *fgets(char *s, int n, FILE *stream);从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL char t[100];fp=fopen("file","r");fgets(t,81,fp); \/\/从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取...

C语言怎么用循环输入一个字符串,遇到特定字符停止(‘@’) 123abc@_百 ...
char ch;while((ch = getchar())!='@') ...

c语言怎样输入一串字符让程序停止
你好 很高兴为你解答 答案是:将读入的字符串与你预设的字符串(比如exit)作比较,如果相同就break退出循环,程序就退出了。满意请采纳,谢谢

C语言如何读取文件中指定的某一段
使用fread函数读取指定长度的字符串,即使包含\\n也会被读取,可以首先使用fseek定位到文件结尾,然后ftell函数返回的值就是文件的大小,这样就可以用循环多次读取文件,直到读取所有内容 FILE *file = NULL;char szFile[1025] = {0};int nHadRead = 0;file = fopen( "file.txt", "r+");if ( ...

c语言中如何判断一个字符串到结尾
举个例子:include<stdio.h> define N 10 int strchangdu(char str[]){ int i=0;for( ;str[i];i++);return i;} void main(){ char s[N];scanf("%s",s);printf("字符串的长度是:%d\\n",strchangdu(s));} 字符串是以'\\0'结尾的所以遇到它就表示字符串结束 ...

C语言 字符串怎么加结束标志
1、首先我们打开C语言编辑软件。2、然后我们点开“文件”,“新建”,进入界面以后,我们新建一个C的文件。3、我们要知道C语言中的字符串结束标志是字符‘\\0‘。通常情况下我们有两种办法去输出结束标志。4、直接使用字符‘\\0’来输出结束标志。5、我们还可以利用ASCII码,'\\0'的ASCII码是0,所以...

相似回答