C语言,输入一个字符串和一个字符,就从该字符最后出现的位置输出字符串中的字符否则返回空指针NULL

我这么写为啥运行不出结果。
#include<stdio.h>
char *match( char *s, char ch );
int main( void )
{
char ch, str[80], *p = NULL;
printf( "Please Input the string : \n" );
scanf( "%s", str );
getchar();
ch = getchar();
if( ( p = match( str, ch ) ) != NULL )
printf( "%s\n", p );
else
printf( "Not Found\n" );
return 0;
}
char *match( char *s, char ch )
{
char *k = NULL;
while( *s != '\0' )
{
if( *s == ch )
k = s;
else
s++;
}
if( k != NULL )
return(k);
return (NULL);
}

第1个回答  2017-06-02

match函数修改如下。

char *match( char *s, char ch )
{
    char *k = NULL;
    while( *s != '\0' )
    {
        if( *s == ch )
        k = s;
        s++;
    }
    if( k != NULL )
    return(k);
    return (NULL); 
}

本回答被提问者采纳
第2个回答  2020-03-18
char *match(char *s, char ch)
while (*s != '\0')
if (*s == ch)
return s;
else
s++;
return 0;
}

C语言,输入一个字符串和一个字符,就从该字符最后出现的位置输出字符串中...
char *match( char *s, char ch ){ char *k = NULL; while( *s != '\\0' ) { if( *s == ch ) k = s; s++; } if( k != NULL ) return(k); return (NULL); }

C语言编程:从键盘输入一个字符和一个字符串,判定该字符能否在输入的字...
int i;printf("字符串:");gets(s);printf("字符:");c=getchar();for(i=0;s[i]!='\\0'&&s[i]!=c;i++);if(s[i]=='\\0') printf("Not found.\\n");else printf("该元素的下标:%d\\n",i);}

...输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现...
include <stdio.h>#include <conio.h>#define ARR_LEN 255 \/*数组长度上限*\/int main (void) {char str[ARR_LEN], c, *p;int flag = 0; printf ("请输入字符串:"); gets (str); printf ("请输入字符:"); c = getchar (); p = str; \/* p指向str的首字符 ...

C语言中,如何输出一个字符串中的字符?
char str[] = "hello, world!";int len = sizeof(str) \/ sizeof(char); \/\/ 计算字符串的长度 for (int i = 0; i < len; i++) { printf("%c ", str[i]); \/\/ 逐个输出字符串中的字符 } return 0;}

关于c语言:输入一个字母,再输入一个字符串,在这个字符串中查找该字母...
include<stdio.h> include<string.h> int main(){ int i,d,s=0;char character,st[80];printf("Input a character : ");scanf("%c",&character);printf("Input a string : ");scanf("%s",st);for(i=0;st[i]!='\\0';i++){ if(character==st[i]){ d=i;s=1;break;} } ...

如何在C语言中实现输入一个字符串,然后按照指定顺序输出字符字串。
本人楼主意思的理解如下:include<stdio.h> int main(){ int n;string a[4]; \/\/string 为字符串类型 printf("请输入您要输出的第n个字符串");scanf("%d",&n);printf("%s\\t",a[n-1]);return 0;}

在C语言中如何实现用键盘输入一个字符串,并打印出来
在C语言中输入并打印字符串的编程方法如下:定义一个存放字符串的数组空间,比如为字符串分配100个数组空间。使用gets()函数获取键盘输入的字符串,输入格式为gets(定义的字符数组名)。使用puts()函数输出之前输入的字符串,输出格式为puts(定义的字符数组名)。运行程序后,成功实现输入字符串并原样在...

C语言中如何输入若干行文字,再输入一个字符串,查找并输出含有该字符串的...
include <string.h>#include <stdio.h>#include <conio.h>#include <stdlib.h>int main(void){ char txt[20][100] = {"0"}; char str[100] = {"0"}; int n = 0, i = 0; printf("please input the number of lines:\\n");\/\/ 输入你要输入的行数 scanf("%d",&n);...

C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab...
大致思考方法:定义三个字符串:str[], ab[], output[],str是输入的第一个字符串,output放的是最后的结果。设置两个下标 i,j。i指向第一个字符串,j指向第二个子符串;i每次向后移动一个位置,i往后的strlen(ab)个字符是不是和字符串ab匹配,如果不匹配就把str[i]添到字符串output中,如果...

从键盘输入一个字符串和一个数字n,要求从字符串的第n个字符开始到字符串...
C的字符串是用字符数组实现的,而数组的下标规定是从0开始的。第n个元素的下标值就是n-1了,0~n-1刚好共n个元素。Str是这个字符串数组的首地址,就是下标为0的那个元素的地址,它加上n-1刚好是第n个元素所在的位置。printf("%s\\n",Str+n-1)的意思是把字符串Str从第n个元素(下标是n-1)开始的后续元素...

相似回答