先输入n个字符串,然后再输入一个查找字符串,打印出最后一个字符串是前n个中第几个被输入的。(如果出现相同的只打印第一次是第几个被输入的),如果不在前n个中则返回-1。c语言
时间: 2024-11-22 10:41:43 浏览: 35
在C语言中,你可以通过使用数组和循环结构来实现这个功能。这里是一个简单的步骤描述:
1. 首先,创建一个动态大小的字符数组`strings[]`来存储输入的n个字符串,并分配足够的内存空间。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STRINGS 10 // 根据实际需求调整最大字符串数
int main() {
char strings[MAX_STRINGS][50]; // 每个字符串最多49个字符加上终止符'\0'
int n;
printf("请输入字符串的数量(n): ");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
char input[50];
printf("请输入第 %d 个字符串: ", i + 1);
fgets(input, sizeof(input), stdin); // 注意去除fgets的换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
strcpy(strings[i], input);
}
```
2. 接下来,输入查找的字符串`search_string`,并遍历数组寻找它在哪些位置出现过。
```c
char search_string[50];
printf("请输入查找的字符串: ");
fgets(search_string, sizeof(search_string), stdin);
search_string[strcspn(search_string, "\n")] = '\0';
int index = -1; // 初始化为-1表示未找到
for (int i = 0; i < n; i++) {
if (strcmp(strings[i], search_string) == 0) { // 如果匹配
if (index == -1) { // 如果这是第一次找到,记录索引
index = i + 1;
}
break; // 找到后立即跳出循环
}
}
```
3. 最后,输出结果。
```c
printf("查找字符串 '%s' 在数组中是第 %d 个。\n", search_string, index);
return 0;
}
阅读全文