编写一函数strend(s, t),如果字符串t出现在字符串s的尾部,该函数返回1,否则返回0。要求在main函数中测试该函数:先从键盘输入字符串s、t(不超过100个字符),然后调用该函数,并输出返回的结果。
时间: 2023-04-17 16:04:31 浏览: 231
sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
下面是一个可能的解答:
```c
#include <stdio.h>
#include <string.h>
int strend(char *s, char *t) {
int slen = strlen(s);
int tlen = strlen(t);
if (tlen > slen) {
return ;
}
return strcmp(s + slen - tlen, t) == ;
}
int main() {
char s[101], t[101];
printf("请输入字符串s:");
scanf("%s", s);
printf("请输入字符串t:");
scanf("%s", t);
if (strend(s, t)) {
printf("字符串t出现在字符串s的尾部。\n");
} else {
printf("字符串t不出现在字符串s的尾部。\n");
}
return ;
}
```
这个程序定义了一个函数`strend`,它接受两个指向字符数组的指针`s`和`t`,并返回一个整数。该函数首先计算`s`和`t`的长度,如果`t`的长度大于`s`的长度,则`t`不可能出现在`s`的尾部,直接返回。否则,该函数比较`s`中从末尾开始长度为`t`的子串和`t`是否相等,如果相等则返回1,否则返回。
在`main`函数中,程序先从键盘读入字符串`s`和`t`,然后调用`strend`函数,并根据返回值输出相应的结果。注意,这里使用`scanf`函数读入字符串时,由于字符串中可能包含空格,因此不能使用`%s`格式,而应该使用`%[^\n]`格式,表示读入除换行符外的所有字符。但是,由于这里假设输入的字符串不包含空格,因此可以简单地使用`%s`格式。
阅读全文