用c语言编程实现:输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符。如果找到,则输出该字符串中相应的最大下标(下标从0开始);否则输出“not found”。
时间: 2024-03-01 13:54:20 浏览: 49
好的,以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char c, str[80];
int i, idx = -1;
printf("请输入一个字符:");
scanf("%c", &c);
printf("请输入一个以回车结束的字符串(少于80个字符):");
scanf("%s", str);
// 在字符串中查找该字符
for (i = 0; i < strlen(str); i++) {
if (str[i] == c) {
idx = i;
}
}
// 输出结果
if (idx == -1) {
printf("not found\n");
} else {
printf("该字符在字符串中的最大下标为:%d\n", idx);
}
return 0;
}
```
代码思路如下:
1. 首先使用 `scanf` 分别读入一个字符和一个字符串;
2. 然后使用 `for` 循环遍历字符串中的每个字符,查找与输入的字符相同的字符,并记录最大下标;
3. 最后根据是否找到相应字符来输出结果。
需要注意的是,由于使用 `scanf` 读入字符串时会自动在末尾添加一个空字符,因此在使用 `strlen` 计算字符串长度时需要减去这一个字符。
相关问题
C语言编程题: 输入一个字符串看里面看字母多少,数字多少,特殊符号多少
在C语言中,你可以通过遍历输入的字符串并逐字符分析来解决这个问题。首先,你需要创建三个计数器分别记录字母、数字和特殊符号的数量。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的库
int main() {
char str[100]; // 存储字符串
int alpha_count = 0; // 字母计数器
int num_count = 0; // 数字计数器
int special_count = 0; // 特殊符号计数器
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 获取用户输入,包括换行符
// 遍历字符串,忽略空格
for (char *p = str; *p != '\0'; p++) {
if (isalpha(*p)) { // 检查是否为字母
alpha_count++;
} else if (isdigit(*p)) { // 检查是否为数字
num_count++;
} else { // 其他不是字母也不是数字的就是特殊符号
special_count++;
}
}
printf("\n字符串中有:\n"
"字母: %d\n"
"数字: %d\n"
"特殊符号: %d\n",
alpha_count, num_count, special_count);
return 0;
}
```
在这个程序中,`isalpha()` 函数用于检查字符是否为字母,`isdigit()` 则用于检查是否为数字。如果字符既不是字母也不是数字,那么它就被认为是特殊符号。
用C语言编程:任意输入一个字符串,然后再输入从该串中删除的指定字符
好的,我可以帮你回答这个问题。以下是一个示例代码,可以实现你所需的功能:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch;
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &ch);
/* 删除指定字符 */
for(i = j = 0; str[i] != '\0'; i++) {
if(str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0';
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
你可以将以上代码复制到你的C语言编程环境中,编译并运行它。同时,也可以根据自己的需要对代码进行适当修改和优化。
阅读全文