有两个字符串str1和str2,它们的长度都不超过100个字符。请C语言编程实现在str1中查找str2的初始位置。
时间: 2024-05-01 22:16:51 浏览: 106
```
#include <stdio.h>
#include <string.h>
int main()
{
char str1[101], str2[101];
int len1, len2, i, j, flag;
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
len1 = strlen(str1);
len2 = strlen(str2);
for (i = 0; i <= len1 - len2; i++)
{
flag = 1;
for (j = 0; j < len2; j++)
{
if (str1[i + j] != str2[j])
{
flag = 0;
break;
}
}
if (flag)
{
printf("字符串2在字符串1中的初始位置为:%d\n", i);
return 0;
}
}
printf("字符串2不在字符串1中。\n");
return 0;
}
```
相关问题
有两个字符串str1和str2,它们的长度都不超过100个字符。请使用C语言实现在str1中查找str2的初始位置。
可以使用strstr函数来实现在str1中查找str2的初始位置。这个函数需要在头文件<string.h>中引用,然后使用如下代码:
char* result;
result = strstr(str1, str2);
if (result != NULL) {
printf("str2 is found at position %ld in str1.\n", result - str1);
} else {
printf("str2 is not found in str1.\n");
}
注意:如果在str1中找不到str2,strstr函数会返回NULL。因此需要在判断result是否为NULL之后再进行后续操作。
使用C语言编程:输入两个字符串分别存放到字符数组str1和str2中,将str2中的字符串全部链接到str1中字符串的尾部,并将链接得到的更长的字符串存放在str1数组中(假设字符数组str1的长度足够大)。
在C语言中,你可以使用指针和数组操作来实现这个功能。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 引入字符串库,用于strlen计算字符串长度
#define MAX_LEN 100 // 定义最大字符数组长度
// 函数声明
void concatenate(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 将str2的内容复制到str1的剩余空间
memmove(str1 + len1, str2, len2 + 1); // 注意加1是因为我们要包含结束符'\0'
}
int main() {
char str1[MAX_LEN] = "Hello, "; // 初始化str1
char str2[] = "World!"; // 初始化str2
concatenate(str1, str2);
printf("连接后的字符串是:%s\n", str1);
return 0;
}
```
在`concatenate`函数中,我们首先计算`str1`和`str2`的长度,然后使用`memmove`函数将`str2`的内容移到`str1`的尾部,注意要包括结束符`\0`。
阅读全文