LINUX.ORG.RU

string && find


0

0

Я тут пытаюсь найти индекс символа:

#include <string>
#include <stdio.h>

int main(){
	char *c = new char[255];
	
	scanf("%s", c);
	
	printf("\nStirng - %s\n", c);
	int i;
	i = (unsigned int) strchr(c, ':');
	i = i - (unsigned int) c;
	printf("\ni: %i\n", i);
	return 0;
}
	
Ответ дает верный, но правильно ли это? Всмысле не опасно?
Хотел ичпользовати класс string, да что-то не нашел я в /usr/include загловочного файла, который содержал бы string.
anonymous

>хотел ичпользовати класс string, да что-то не нашел я в /usr/include

у меня, например, заголовки c++ хедеров находятся здесь:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/include/g++-v3/

что друдно было просто вставить в файл

#include <string>

и попробовать скомпилировать g++?

fghj ★★★★★
()

#include <string>
#include <stdio.h>
#include <stdlib.h>

int main()
{
std::string a="мама мыла раму";
size_t index = a.find("ы");
if (index == -1)
{
printf ("ERROR\n");
exit(1);
}
printf ("[%c]\n", a[index]);

return 0;
}

linuxsoft
()
Ответ на: комментарий от anonymous

Спасибо, я забыл про namespace std, и после подключения string класс string не определялся.

PS Предпоследнее сообщение было адресовано не сюда.

anonymous
()
Ответ на: комментарий от anonymous

> Я загружался не через сессию, а из консоли.
переведи плз

eXOR ★★★★★
()
Ответ на: комментарий от linuxsoft

2linuxsoft
> size_t index = a.find("ы");
> if (index == -1)
А вы уверены, что в случае отсутствия требуемого
символа find возвращает -1 ???

anonymous
()
Ответ на: комментарий от anonymous

>А вы уверены, что в случае отсутствия требуемого
>символа find возвращает -1 ???
Естественно:

#include <string>
#include <stdio.h>
#include <stdlib.h>

int main()
{
std::string a="мама мыла раму";
size_t index = a.find("я");
printf ("%d\n", index);
return 0;
}

linuxsoft
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.