1. 子串判断
【问题描述】
设s、t 为两个字符串,两个字符串分为两行输出,判断t 是否为s 的子串。如果是,输出子串所在位置(第一个字符,字符串的起始位置从0开始),否则输出-1
【输入形式】
两行字符串,第一行字符串是s;第二行是字符串t
【输出形式】
对应的字符
【样例输入】
abcdkkk bc
【样例输出】
1
【样例说明】
【评分标准】
#include <stdio.h>
#include <string.h>
int main() {
char s[100], t[100];
scanf("%s", s);
scanf("%s", t);
int s_len = strlen(s);
int t_len = strlen(t);
int i, j;
for (i = 0; i <= s_len - t_len; i++) {
for (j = 0; j < t_len; j++) {
if (s[i + j] != t[j]) {
break;
}
}
if (j == t_len) {
printf("%d\n", i);
return 0;
}
}
printf("-1\n");
return 0;
}
2. 字符串连接
【问题描述】
在不使用strcat()的前提下,实现两个字符串的连接。
【输入形式】
以'#'为结束符的两行字符串
【输出形式】
将第一行字符串连接到第二行字符串,然后打印输出
【样例输入】
abc# def#
【样例输出】
defabc
【样例说明】
【评分标准】
不能使用strcat(),否则不能得分
#include <stdio.h>
int main() {
char str1[100], str2[100];
int i, j;
scanf("%[^#]#", str1);
scanf("%[^#]#", str2);
for (i = 0; str2[i] != '\0'; i++);
for (j = 0; str1[j] != '\0'; j++) {
str2[i + j] = str1[j];
}
str2[i + j] = '\0';
printf("%s\n", str2);
return 0;
}