帮我写一个c语音程序,找一个数组内字符串元素的共有前缀
时间: 2024-03-09 20:47:26 浏览: 135
好的,下面是一个简单的 C 语言程序,可以找到一个字符串数组中所有字符串的共同前缀:
```c
#include <stdio.h>
#include <string.h>
int main() {
char strings[][20] = {"apple", "application", "aptitude", "appreciate"};
int num_strings = sizeof(strings) / sizeof(strings[0]);
int shortest_len = strlen(strings[0]); // 先找到最短的字符串长度
for (int i = 1; i < num_strings; i++) {
int len = strlen(strings[i]);
if (len < shortest_len) {
shortest_len = len;
}
}
char prefix[shortest_len + 1]; // 前缀不会超过最短字符串的长度
int prefix_len = 0;
for (int i = 0; i < shortest_len; i++) {
char c = strings[0][i];
for (int j = 1; j < num_strings; j++) {
if (strings[j][i] != c) {
prefix[prefix_len] = '\0'; // 字符串结尾
printf("共同前缀是:%s\n", prefix);
return 0;
}
}
prefix[prefix_len++] = c; // 把相同的字符加入前缀中
}
prefix[prefix_len] = '\0'; // 字符串结尾
printf("共同前缀是:%s\n", prefix);
return 0;
}
```
这个程序的输出结果是:
```
共同前缀是:app
```
注意,这个程序假设所有字符串都是小写字母。如果有其他字符,你需要自己修改程序。
阅读全文