Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Re 07.06.05 17:11 Число просмотров: 1803
Автор: Heller <Heller> Статус: Elderman
|
> char *s; > char buf[100]; > int i; > > s=strstr(buf, "test"); > > Хочу в i получить смещение строки "test" в строке buf. > Почему не работает i=s-&buf? > > Как сделать, чтобы работало? buf - это на самом деле указатель сам по себе. То бишь
char buf[100];
это то же самое, что и
char *buf=(char *)(malloc(sizeof(char)*100));
а
buf[0]
это тоже самое что и
*buf
Стало бы амперсанд перед buf лишний - ты получаешь указатель на указатель.
Второе замечание: i - переменная типа int. Я не помню точно, но вроде как Си не умеет приводить указатели к другим типам, отличных от указателей.
Что делать: писать собственную функцию поиска подстроки, которая будет возвращать целое значение. Или искать подобную библиотечную (но я про такие не слышал).
|
|
|