写一个c语言代码,一个字符串为“京234567”,一个为二维数组中存放了很多数据,将字符串相同的提示出来
时间: 2024-10-21 08:09:05 浏览: 22
为了在C语言中完成这个任务,你需要先创建一个二维数组存储数据,并编写一个函数来比较字符串。在这个例子中,假设二维数组每个元素都是字符串,我们可以遍历数组查找是否有与输入字符串"京234567"相同的项。以下是相应的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ROWS 10 // 假设二维数组有10行
#define COLS 5 // 每行5个字符串
typedef struct {
char* data;
} StringArray;
// 创建二维数组
StringArray** create_string_array() {
StringArray** array = malloc(sizeof(StringArray*) * ROWS);
for (int i = 0; i < ROWS; i++) {
array[i] = (StringArray*)malloc(sizeof(StringArray));
array[i]->data = (char*)malloc(COLS * sizeof(char)); // 每个元素预留足够的空间
}
return array;
}
// 分配数据并设置元素
void set_data(StringArray** array, int row, int col, char* input) {
strcpy(array[row]->data + col * strlen(input), input); // 将数据复制到二维数组的指定位置
}
// 比较字符串
int compare_strings(const char* str, StringArray** array, int row, int col) {
return strcmp(str, array[row]->data + col * strlen(array[row]->data));
}
int main() {
StringArray** data = create_string_array();
// 设置一些示例数据
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
set_data(data, i, j, "京234567"); // 假设所有元素都相同
}
}
char search_str[] = "京234567";
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (compare_strings(search_str, data, i, j) == 0) {
printf("找到相同字符串:'%s'\n", search_str);
}
}
}
// 清理内存
for (int i = 0; i < ROWS; i++) {
free(data[i]->data);
free(data[i]);
}
free(data);
return 0;
}
```
阅读全文