C语言编写int strend(s,t)

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:27:49
如果字符串t出现在字符串s尾部,则返回1,否则返回0;

写一个算法,都是先理清思路,分析清楚了,就基本上算可以初步完成了。分析:这里的题意是有字符串s和t,所以可以考虑一下临界条件,比如s或t是否为空串等,这里忽略吧,因为不影响思路。t在s的尾部出现,前提最起码是s不比t短。要t在s尾部出现,可以先求出两个串的长度ls和lt,然后strcmp(&s[ls-lt],t),该表达式的返回值就是最终函数的返回值。综合以上分析写出代码:
#include </usr/include/stdio.h>
#include </usr/include/string.h>

int strend(char*, char* );
int main() {
char* a = "zbjxb";
char* b = "h";
printf("%d\n",strend(a,b));
//printf("test window() function!\n");
exit(0);
}

/*
* s==t , strend(s,t) returns 1
* s != t, strend(s,t) returns 0
*/
int strend(char* s, char* t) {
int nLengthS = strlen(s);
int nLengthT = strlen(t);
if (nLengthT == 0)
return 1;
if (nLengthS < nLengthT)
return 0;
/*when s1 == s2 ,strcmp(s1,s2) returns zero*/
return !strcmp(&s[nLengthS-nLengthT],t);
}
当然,这里的返回值和库函数中的规定可能有些出入