用c语言解决:查找字符串(长度不超过100)中某字符最后一次出现的位置(下标)并输出,不存在则输出-1。 输入格式: 第一行输入一个字符串(可以包含空格) 第二行输入一个字符 输出格式: 一个整数 输入样例: Hello World! o 输出样例: 7
时间: 2023-06-08 19:09:03 浏览: 269
好的,我会保守您的要求,并回答您的问题。
这个问题可以用以下的 C 语言代码解决:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string[101];
char c;
int i, last_index = -1;
// 读入字符串和字符
fgets(string, 101, stdin);
scanf("%c", &c);
// 在字符串中查找字符
for (i=0; i<strlen(string); i++) {
if (string[i] == c) {
last_index = i;
}
}
// 输出结果
printf("%d\n", last_index);
return 0;
}
```
输入样例:
```
Hello World!
o
```
输出样例:
```
7
```
希望能够帮到您!
相关问题
实验4-必做题(2)用c语言实现查找字符串中所有指定的字符 要求编写一个实现输出字符串s中值等于字符ch的所有字符的函数,并用主函数测试结果。 输入格式: 输入有2行,第一行是一个字符x,表示需要查找的字符;第二行是一个以回车结束的非空字符串(不超过100个字符)。 输出格式: 输出所有查找到的字符的下标(从0开始),每个数之间隔1个空格,行末不留空格,如果查找不到,输出-1。
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char ch, s[100];
int i, len, flag = 0;
scanf("%c", &ch); // 输入需要查找的字符
getchar(); // 消耗多余的换行符
fgets(s, 100, stdin); // 输入字符串
len = strlen(s); // 获取字符串长度
for(i = 0; i < len; i++)
{
if(s[i] == ch)
{
printf("%d ", i);
flag = 1; // 查找到标记为1
}
}
if(!flag) // 如果没有查找到
{
printf("-1");
}
return 0;
}
```
使用 `fgets()` 函数可以读入带空格的字符串,然后遍历字符串,判断每个字符是否等于需要查找的字符,如果相等就输出该字符的下标,同时将查找到的标记 `flag` 设为1。如果遍历完整个字符串仍然没有查找到,则输出-1。
c语言查找最大字符串,字符串个数n(5<=n<=100),字符串长度不超过50字符,输出最大的字符串。 第一行,输入字符串个数n; 接下来n行,每行一个字符串。 1行,即最大的字符串。
好的,我可以帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_LEN 50
int main() {
char str[MAX_N][MAX_LEN + 1]; // 存储字符串
int n, i, max_index = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s", str[i]);
if (strlen(str[i]) > strlen(str[max_index])) {
max_index = i; // 记录最长字符串的下标
}
}
printf("%s\n", str[max_index]); // 输出最长字符串
return 0;
}
```
首先,我们定义了一个二维字符数组 `str`,它有 `n` 行,每行可以存储最大长度为 `MAX_LEN` 的字符串。接着,我们从标准输入中读入 `n`,再用循环依次读入每个字符串,并将当前最长字符串的下标存储在 `max_index` 变量中。
注意,在读入每个字符串时,我们使用了 `strlen()` 函数来计算字符串的长度,以便比较每个字符串的长度大小。最后,我们输出 `str[max_index]` 即可得到最长的字符串。
阅读全文