已知字符串S1中存放一段英文,写出算法format(s1,s2,s3,n),将其按给定的长度n格式化成两端对齐的字符串S2, 其多余的字符送S3。
A、Function find%(ByVal s1$, ByVal s2$) If s1 = "" Then find = 0 Else find = 1 + find(s1, s2) End If End Function
B、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n > 0 Then find = 1 Else find = find(Mid(s1, n + Len(s2)), s2) End If End Function
C、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n > 0 Then find = 0 Else find = 1 + find(Mid(s1, n + Len(s2)), s2) End If End Function
D、Function find%(ByVal s1$, ByVal s2$) Dim n% n = InStr(s1, s2) If n <= 0 then find="0" else + find(mid(s1, n len(s2)), s2) end if>
A.if(s1>s2) B.if(strcmp(s1,s2))
C.if(strcmp(s2,s1)>0)D.if(strcmp(s1,s2)>0)
A、if(s1>s2)
B、if(strcmp(s1,s2))
C、if(strlen(s1)>strlen(s2))
D、if(strcat(s1)>strcat(s2))
【说明】
本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。
【代码】
include<stdio.h>
include<stdlib.h>
include<string.h>
char*replace(char *s1, char *s2,char *s3)
{ char *p, *q, *r, *s; int |2,|3, i=0;
|2=strlen(s2);
|3=strlen(s3);
p=s1;
while((p=strstr(p,s2))!=NULL)
{ i++; /* 统计s2串出现的次数*/
(1);
}
i=(2);
s=r=(char*)malloc(i); /*分配动态内存存放新字符串*/
p=s1;
while(1)
{ q=strstr(p, s2); /* s2串是否在s1中出现,q是首次出现的位置*/
if(q!=NULL)
{ i=q-p;
(3);
r+=i;
(4);
r+=|3;
p=q+|2; /*将指向s1串的指针移到s2子串出现的位置后,
为下一次循环做好准备*/
}
else /*q为空,表示剩余的s1串中已经没有s2*/
{ (5);
break; /*终止循环*/
}
}
return(s); /*返回指向所形成的新串的指针*/
}
void main()
{ char *a="sabcababde", *b="ab", *c="efg", *d;
d=replace(a, b, c); printf("result=%s\n", d); free(d);
}
A、'1234AAA@'
B、'123AAA/7'
C、'123AAA7'
D、'123AAA/@#7'
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!