c语言编写从两个字符串之中的一个字符串中找出字符二中的匹配项输出
时间: 2024-10-13 20:05:11 浏览: 10
在C语言中,你可以使用循环和条件语句来实现这个功能。假设你要从两个字符串`s1`和`s2`中找出`s2`中存在的字符,并输出它们。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void find_matches(char *s1, char *s2) {
int len_s1 = strlen(s1);
for (int i = 0; i < len_s1; i++) {
if (s2[i] != '\0' && s2[i] == s1[i]) { // 如果s2中的当前字符等于s1中的相应位置的字符
printf("%c ", s1[i]); // 输出匹配的字符
}
}
printf("\n"); // 结束后换行
}
int main() {
char str1[] = "Hello";
char str2[] = "WorldHello";
find_matches(str1, str2);
return 0;
}
```
在这个例子中,我们遍历`s1`中的每个字符,检查它是否也在`s2`中存在。如果找到匹配,则输出该字符。
相关问题
输出N件航材中价值最高航材的信息 编写C语言程序,输出N件航材中价值最高航材的信息。N用符号常量定义为5,航材信息包括件号(PN)、名称(Designation)、单价(Price)。注意:件号为长整型,名称是没有空格的字符串,最长不超过30个字符,单价为float类型。 输入格式: "%ld%s%f" 输出格式: "%ld %s %.0f\n"
下面是按照方案二中的方法实现的代码:
```c
#include <stdio.h>
#include <string.h>
#define N 5
typedef struct {
long pn; // 件号
char designation[31]; // 名称
float price; // 单价
} Aircraft;
// 最小堆的比较函数
int cmp(const void *a, const void *b) {
Aircraft *p1 = (Aircraft *)a;
Aircraft *p2 = (Aircraft *)b;
return p1->price > p2->price ? 1 : -1;
}
int main() {
Aircraft aircrafts[N];
printf("请输入%d件航材的信息:\n", N);
for (int i = 0; i < N; i++) {
printf("请输入第%d件航材的信息:\n", i + 1);
printf("件号:");
scanf("%ld", &aircrafts[i].pn);
printf("名称:");
scanf("%s", aircrafts[i].designation);
printf("单价:");
scanf("%f", &aircrafts[i].price);
}
// 维护一个大小为1的最小堆
Aircraft heap[1];
heap[0].price = -1; // 初始堆顶为一个极小值
for (int i = 0; i < N; i++) {
if (aircrafts[i].price > heap[0].price) {
heap[0] = aircrafts[i];
qsort(heap, 1, sizeof(Aircraft), cmp);
}
}
printf("价值最高的航材信息如下:\n");
printf("%ld %s %.0f\n", heap[0].pn, heap[0].designation, heap[0].price);
return 0;
}
```
注意,上述代码中使用了最小堆来维护当前价值最高的K件航材。首先初始化一个大小为1的最小堆,堆顶元素的初始值为一个极小值。然后遍历所有航材,对于每个航材,如果其价值大于堆顶元素的价值,就将其加入堆中,然后弹出堆顶元素(即当前价值最低的航材),最后堆中剩余的航材即为价值最高的K件航材。
输出时按照题目要求使用`%ld%s%.0f`格式输出。
strlen在c语言中的用法
strlen是C语言中的一个字符串处理函数,用于计算字符串的长度。它的用法是在头文件<string.h>中,通过传入一个字符串作为参数,返回该字符串的长度,即字符串中字符的个数。在示例代码中,场景一中的数组arr已经初始化为字符串"abcde",通过strlen函数计算得到的长度为5;场景二中的数组arr通过逐个赋值的方式构成了字符串,同样通过strlen函数计算得到的长度也是5。
阅读全文