以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char *fun(char *str,char c)
{ int n=0; char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!=′\0′)n++;
if(p[n]==′\0′) return NULL;
return(______);
}
发布于 2022-05-11 09:54:02
登录后免费查看答案
关注者
0
被浏览
20
1 个回答
推荐阅读
-
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。int mystrlen(char *str){ int i; for(i=0;【7】______!=′\0′;i++);return(i);}
2022-05-13 关注 0 浏览13 1答案
-
以下函数sstrcat( )的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。 # include void sstrcat(char *s, char *t) { int n; n= strlen(s); while (*(s+n)= ______ ){s++; t++;} }
2022-05-11 关注 0 浏览15 1答案
-
请补充函数proc(),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。例如,当str输入“abcabcabcab”,c=b时,b的输出为“abcabcaca”;如果str的输入为“abcabcabca”,则b的输出为“abcabcabca”。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅程函数prOC()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#include#define M 80void proc(char str[],char b[],char c){int i=0,j=0;int n=0:int m=0:while(str[i]!='\0'){if(str[i]==c)n++:i++:}【1】 ;if(n%2){while(str[j]!='\0 '){b[j]=str[j];j++;}b[j]='\0';}else{while(str[i]!='\0 '){b[j++]=str[i];if(str[i]==c)m++:if((m>n/2)&&(str[i]==c))【2】 ;i++:}【3】 ;}}void main(){char str[M],b[M];char C;system("CLS");printf("Enter the strin9:\n");gets(str);printf("Enter the character of thestring deleted:"):scanf("%C",&c);proc(str,b,c);printf("The new string is:%s\n",b);}
2022-05-11 关注 0 浏览38 1答案
-
试题二 阅读下列函数说明和C函数,将应填入__(n)__处的字句写在答题纸的对应栏内。[函数2.1说明] 函数palindrome(chars[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。[函数2.1] int palindrome(char S[]) { char *pi,*pj; pi=S;pj=s+strlen(S)-1: while ( pi<pj && __(1)__){ pi++; pj--; } if(__ (2)__)return-1; else return 0; }[函数2.2说明] 函数f(char *str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。 例如若str的值为“33123333435”,del的值为‘3’,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。[函数2.2] void f(char*str,char del) { int i,j,len; len = strlen(str); i = 0; while (i<len){ while (__(3)__) i++; /*忽略连续的标志字符*/ /*寻找从str[i]开始直到标志字符出现的一个子字符串*/ j = i + 1; while (str[j] !=del && str[j] !='\0') j++; __ (4)__="\0"; /*给找到的字符序列置字符串结束标志*/ printf(" %s\t",&str[i]): ’ __ (5)__; } }
2022-05-10 关注 0 浏览56 1答案
-
以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include <stdio.h>#include <string.h>char *scmp(char *s1, char *s2){ if(strcmp(s1,s2)<0) return(s1); else return(s2);}main(){ int i; char string[20], str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
2022-05-11 关注 0 浏览31 1答案
-
以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char *s,char *t){ while(*s++=【15______】);}main( ){ char str1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1);}
2022-05-11 关注 0 浏览21 1答案
-
试题二(15,每空3分) 阅读以下函数说明和C语言函数,将应填入___(n)___处的字句写在答题纸的对应栏内。[函数2.1说明] 函数int funl (int m, int n)的功能是:计算并返回正整数m和n的最大公约数。[函数2.1] int funl (int m, int n) { while (___(1)___){ if(m﹥n) m=m-n; else n= n-m; } ___(2)___; } [函数2.2说明] 函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。 例如,若字符串str的值为"f3g8d5.ji2e3p12fkp",则函数返回值为3852312。[函数2.2] long fun2(char *str) { int i=0; long k=0; char *p=str ; while (*p != '/0'&& (3) ) { if(*p ?='0'&& *p ?='9'){ k=___(4)___+*p-'0'; ++i; } ___(5)___; } Return k; }
2022-05-10 关注 0 浏览34 1答案
-
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str){ int i; for(i=0; 【19______】!=‘\0';i++); return(【20______】);}
2022-05-11 关注 0 浏览13 1答案
-
下列给定程序中,函数proc()的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include#includevoid proc(char*strl,char*str2,char*str) {int i,j;char ch;i=0;j=strleu(str2)-1;//****found****while(i>j){ch=str2[i];str2[i]=str2[j];str2[j]=ch;i++;j--;}while(*str1||*str2){if(*str1){*str=*str1;str++;str1++;)if(*str2){*str=*str2;str++;str2++;)}//****found*****str=0:}void main(){char s1[100],s2[100],t[200];system("CLS");printf("\nEnter s1 string:");scanf("%s",sl);printf("\nEnter s2 string:");scanf("%s",s2);proc(s1,s2,t);printf("\nThe result is:%s\n",t);}
2022-05-11 关注 0 浏览18 1答案
-
请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为:ABCDBCDEFGCDEFGHI则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:#include#include#define M 3#define N 20void proc(char arr[M][N],char*b){}void main(){char str[M][N]={"ABCD","BCDEFG","CDEFGHI"},i;char arr[100]={"##################");printf("The string:\n");for(i=0;i<M;I++)puts(str[i]);printf("\n");proc(str,arr);printf("The A string:\n");printf("%s",arr);printf("\n\n");}
2022-05-11 关注 0 浏览39 1答案