c语言输入两行字符串 a 和 b,查找 a 中子串 b 的位置
时间: 2024-04-29 18:25:15 浏览: 8
你好!对于你的问题,我可以给出以下的C语言代码实现:
```
#include <stdio.h>
#include <string.h>
int main()
{
char a[100], b[100];
int i, j, flag;
printf("请输入字符串a:");
gets(a);
printf("请输入字符串b:");
gets(b);
for(i=0; i<=strlen(a)-strlen(b); i++)
{
flag = 1;
for(j=0; j<strlen(b); j++)
{
if(a[i+j] != b[j])
{
flag = 0;
break;
}
}
if(flag == 1)
{
printf("子串b在字符串a中的位置是:%d\n", i+1);
return 0;
}
}
printf("字符串a中不存在子串b!\n");
return 0;
}
```
当然,如果你对这段代码有任何疑问,也可以继续向我提问哦!
相关问题
C语言在字符串A中查找字符串B
可以使用strstr函数来在字符串A中查找字符串B,该函数定义在string.h头文件中。示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char strA[100] = "Hello world";
char strB[10] = "world";
char* p = strstr(strA, strB);
if (p != NULL) {
int index = p - strA; // 计算字符串B在字符串A中的位置
printf("字符串B在字符串A中的位置是:%d\n", index);
} else {
printf("字符串A中没有找到字符串B\n");
}
return 0;
}
```
输出结果为:
```
字符串B在字符串A中的位置是:6
```
上述代码中,首先定义了两个字符数组strA和strB,其中strA表示要查找的字符串,strB表示要查找的子字符串。然后使用strstr函数来查找字符串B在字符串A中的位置,如果找到了,则返回字符串B在字符串A中的指针,否则返回NULL。最后计算出字符串B在字符串A中的位置,并输出结果。
c语言输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面。
好的,让我来解答这个问题。首先,我们需要找到a串中的最小字符和b串中的最大字符。
下面是一个简单的C代码来实现这个功能:
```c
#include <stdio.h>
#include <string.h>
void insert_max_char(char* a, char* b) {
int len_a = strlen(a);
int len_b = strlen(b);
char min_char = a[0];
char max_char = b[0];
// 找到a串中的最小字符
for (int i = 1; i < len_a; i++) {
if (a[i] < min_char) {
min_char = a[i];
}
}
// 找到b串中的最大字符
for (int i = 1; i < len_b; i++) {
if (b[i] > max_char) {
max_char = b[i];
}
}
// 将b串中最大字符插入到a串中最小字符后面
for (int i = 0; i < len_a; i++) {
if (a[i] == min_char) {
char temp = a[i+1];
a[i+1] = max_char;
for (int j = i+2; j <= len_a; j++) {
char temp2 = a[j];
a[j] = temp;
temp = temp2;
}
break;
}
}
printf("%s\n", a);
}
int main() {
char a[100];
char b[100];
scanf("%s %s", a, b);
insert_max_char(a, b);
return 0;
}
```
输入两个字符串a和b,然后将b串中的最大字符插入到a串中最小字符后面。最后输出处理后的a字符串。
希望能够解决你的问题。