blob: ebf4635fb88cbba878258811787551c093a8f442 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 1000
/* Returns 1 if t occurs at the end of s, 0 otherwise */
int strend(char *s, char *t);
int main(int argc, char *argv[]) {
char *s, *t;
s = malloc(sizeof(char) * MAXLEN);
t = malloc(sizeof(char) * MAXLEN);
printf("first str: ");
fgets(s, MAXLEN, stdin);
s[strlen(s) - 1] = 0;
printf("second str: ");
fgets(t, MAXLEN, stdin);
t[strlen(t) - 1] = 0;
printf("rv: %s\n", strend(s, t) ? "true" : "false");
free(s);
free(t);
return 0;
}
int strend(char *s, char *t) {
size_t slen, tlen;
slen = strlen(s);
tlen = strlen(t);
if (slen < tlen)
return 0;
for (s += slen - tlen; *s != 0; s++, t++) {
if (*s != *t)
return 0;
}
return 1;
}
|