本关任务:输入两个字符串str1和str2,查找str2在str1里首次出现的位置。给出c语言代码
时间: 2024-04-30 09:24:16 浏览: 14
请参考以下代码:
```
#include <stdio.h>
#include <string.h>
int main(){
char str1[100], str2[100];
printf("请输入字符串str1:");
scanf("%s", str1);
printf("请输入字符串str2:");
scanf("%s", str2);
char *ptr = strstr(str1, str2);
if(ptr){
printf("字符串str2在字符串str1中首次出现的位置是:%d\n", ptr - str1);
}
else{
printf("字符串str2未在字符串str1中出现!\n");
}
return 0;
}
```
输入两个字符串str1和str2,程序会查找str2在str1中首次出现的位置,并输出结果。如果str2未在str1中出现,则输出提示信息。
相关问题
C语言:输入两个字符串str1和str2,输出str2在str1中的所有位置,没有则输出no
以下是一个基于C语言的实现,可以实现输入两个字符串str1和str2,输出str2在str1中的所有位置,没有则输出no:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
int len1 = strlen(str1), len2 = strlen(str2);
int i, j, k, flag;
for (i = 0; i <= len1 - len2; i++) {
flag = 1;
for (j = 0, k = i; j < len2; j++, k++) {
if (str2[j] != str1[k]) {
flag = 0;
break;
}
}
if (flag) {
printf("在位置%d处发现字符串2\n", i);
}
}
if (!flag) {
printf("no\n");
}
return 0;
}
```
该程序首先使用`scanf`函数分别读入两个字符串`str1`和`str2`,然后使用`strlen`函数求出两个字符串的长度。接着,使用两个循环嵌套来枚举`str2`在`str1`中出现的位置,具体地,外层循环控制`str2`在`str1`中的起始位置,内层循环则用于比较`str1`和`str2`中对应位置的字符是否相同。如果在某个位置发现`str2`,则输出该位置。最后,如果没有发现`str2`,则输出`no`。
c语言输入两个字符串str1和str2,将字符串str2倒置后接在字符串str1后面。
可以使用C语言的字符串函数来实现这个问题,具体步骤如下:
1. 使用`gets()`函数分别输入两个字符串`str1`和`str2`。
2. 使用`strlen()`函数获取字符串`str2`的长度。
3. 使用循环将字符串`str2`倒置。
4. 使用`strcat()`函数将倒置后的字符串`str2`和字符串`str1`连接起来。
5. 输出连接后的字符串`str1`。
下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
int len, i;
// 输入两个字符串
printf("请输入两个字符串:\n");
gets(str1);
gets(str2);
// 获取字符串str2的长度
len = strlen(str2);
// 将字符串str2倒置
for (i = 0; i < len / 2; i++) {
char temp = str2[i];
str2[i] = str2[len - i - 1];
str2[len - i - 1] = temp;
}
// 将倒置后的字符串str2和字符串str1连接起来
strcat(str1, str2);
// 输出连接后的字符串str1
printf("连接后的字符串为:%s\n", str1);
return 0;
}
```