Найти индекс специального символа в строке в C ++ - PullRequest
4 голосов
/ 07 декабря 2010

Я хочу знать, существует ли какая-либо стандартная функция в Visual Stodio 2010, C ++, которая принимает символ и возвращает его индекс в специальной строке, если она существует в строке. Tnx

Ответы [ 4 ]

4 голосов
/ 07 декабря 2010

Вы можете использовать std::strchr.

Если у вас есть C строка:

const char *s = "hello, weird + char.";
strchr(s, '+'); // will return 13, which is '+' position within string

Если у вас есть std::string экземпляр:

std::string s = "hello, weird + char.";
strchr(s.c_str(), '+'); // 13!

С помощью std::string вы также можете использовать метод для поиска нужного вам персонажа.

3 голосов
/ 07 декабря 2010

strchr или std::string::find, в зависимости от типа строки?

2 голосов
/ 07 декабря 2010

strchr () возвращает указатель на символ в строке.

const char *s = "hello, weird + char."; 
char *pc = strchr(s, '+'); // returns a pointer to '+' in the string
int idx = pc - s; // idx 13, which is '+' position within string 
0 голосов
/ 07 декабря 2010
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string text = "this is a sample string";
    string target = "sample";

    int idx = text.find(target);

    if (idx!=string::npos) {
        cout << "find at index: " << idx << endl;
    } else {
        cout << "not found" << endl;
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...