C语言给定一个字符串s 判断s中是否含有acm这个字符串 输入 给定一个字符串s 长度小于100 输出 若有acm这个子串,则输出“yes”,否则输出“no”
时间: 2023-05-15 20:04:40 浏览: 149
可以使用C语言中的strstr函数来判断字符串s中是否含有acm这个子串,代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
scanf("%s", s);
if (strstr(s, "acm") != NULL) {
printf("yes\n");
} else {
printf("no\n");
}
return 0;
}
```
这段代码中,我们首先定义了一个字符数组s,用于存储输入的字符串。然后使用scanf函数从标准输入中读取字符串s。接着使用strstr函数来查找字符串s中是否含有acm这个子串,如果找到了,则返回该子串在s中的指针,否则返回NULL。最后根据返回值判断是否含有acm子串,并输出相应的结果。
相关问题
链接:https://ac.nowcoder.com/acm/contest/92236/J 来源:牛客网 小红拿到了一个仅由大小写字母组成的长度为 𝑛 n的字符串,她希望把前 𝑘 k个字母变成大写,后 𝑛 − 𝑘 n−k个字母变成小写
这是一个简单的字符串操作题目,要求将给定字符串中的前k个字符转换为大写,其余的转换为小写。在C语言中,我们可以使用`toupper()`和`tolower()`这两个标准库函数来进行字符的大小写转换。
```c
#include <stdio.h>
#include <ctype.h>
void convert_case(char *str, int k) {
for (int i = 0; i < k; i++) { // 将前k个字符转为大写
str[i] = toupper(str[i]);
}
for (int i = k; i < strlen(str); i++) { // 将剩余字符转为小写
str[i] = tolower(str[i]);
}
}
int main() {
char input[100]; // 假设字符串最大长度不超过100
int n, k;
printf("请输入字符串(忽略空格)和需要转换的大写字母数量: ");
fgets(input, sizeof(input), stdin); // 注意处理换行符
input[strlen(input) - 1] = '\0'; // 去掉末尾的换行符
sscanf(input, "%d %d", &n, &k);
if (k <= n && k >= 0) {
convert_case(input, k);
printf("转换后的字符串是: %s\n", input);
} else {
printf("k的值不正确,请确保0 <= k <= n。\n");
}
return 0;
}
```
在这个程序中,首先从用户那里获取字符串和k的值,然后调用`convert_case`函数执行转换。如果k的值在有效范围内(大于等于0且小于或等于n),则输出结果;否则提示错误。
阅读全文