在c++中输入一个字符串再输入一个字符输出该字符串在字符串中所对应的最大下标(下标从0开始),或者否则输出“Not Found”
时间: 2023-05-22 08:03:51 浏览: 92
可以使用strchr函数获取字符串中某个字符的指针,然后用指针减去字符串的首地址,即可得到该字符在字符串中的下标。如果该字符不在字符串中,则返回NULL。下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char c;
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
printf("请输入字符:");
scanf("%c", &c);
char* p = strchr(str, c);
if (p != NULL) {
printf("最大下标为:%d\n", p - str - 1);
} else {
printf("Not Found\n");
}
return 0;
}
```
注意:fgets函数会读取一整行,包括回车符,因此计算下标时需要减去1。
相关问题
以c++写输入一个字符再输入一个以回车结束的字符串 少于80个字符,在字符串中查找该字符。如果找到 则输出该字符在字符串中所对应的最大下标。下标从零开始。否则输出Note found
好的,我可以帮您解决这个问题。请看以下 C++ 代码示例:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char c;
string s;
cin >> c >> ws;
getline(cin, s);
int idx = -1;
for (int i = 0; i < s.size(); i++) {
if (s[i] == c) {
idx = i;
}
}
if (idx == -1) {
cout << "Note found" << endl;
} else {
cout << "Index: " << idx << endl;
}
return 0;
}
```
这个程序首先读入一个字符 `c`,然后使用 `ws` 忽略掉输入流中的空格和回车符,接着使用 `getline()` 函数读入一个不超过 80 个字符的字符串 `s`。之后,程序遍历字符串 `s`,查找字符 `c` 在其中的最大下标 `idx`,如果没找到则输出 "Note found",否则输出 `idx` 的值。
希望这个代码示例能够帮到您。
输入一个字符和一个字符串(少于50个字符),在字符串中查找该字符。若找到,则输出该字符在字符串中所对应的最大下标,下标从0开始;否则输出“Not Found”用c++来写
好的,以下是你要求的C++代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char c;
string str;
cout << "请输入一个字符:";
cin >> c;
cout << "请输入一个字符串:";
cin >> str;
int index = -1;
for (int i = 0; i < str.length(); i++) {
if (str[i] == c) {
index = i;
}
}
if (index == -1) {
cout << "Not Found" << endl;
} else {
cout << "字符 " << c << " 在字符串 " << str << " 中所对应的最大下标为 " << index << endl;
}
return 0;
}
```
这里使用了 `std::string` 类型来处理字符串,使用了 `for` 循环来依次遍历字符串中的每个字符,如果找到了要求的字符,则更新最大下标。最后根据最大下标是否为 `-1` 来输出结果。
阅读全文