Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];

Вниз

В чём ошибка?   Найти похожие ветки 

 
cber   (2007-10-01 22:12) [0]

(Си)
Нужно найти в строке второе вхождение заданного символа:
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char *argv[])
{
if (argc < 3) return 0;
char ch = *argv[1];
char *p;
int j = 0;
int i = 1;
for (p = argv[2]; *p != " "; p++)
 {
   i++;
   if (*p == ch)
     {
      if (j == 1) break;
      j++;
     }
 }
printf("Position - ");
printf("%d", i);
return 0;
}


 
Вася Правильный   (2007-10-01 22:21) [1]

зацикливается?


 
cber   (2007-10-01 22:23) [2]

for (p = argv[2]; *p != " \n "; p++)


 
cber   (2007-10-01 22:25) [3]

опять ошибься:
for (p = argv[2]; *p != " \0 "; p++)


 
palva ©   (2007-10-01 22:27) [4]

А если второго вхождения символа нет, то что напечатает?
По-моему, неверный результат напечатает.


 
Галинка ©   (2007-10-01 22:32) [5]

ну а *p++ кто будет делать? Он же кроме первого символа, больше ничего и не сравнивает.

типа:

int IndexOf(const char *src, char chr){
   int i=0;

   while(*src++){
       if(*src == chr) break;
       else i++;
   }

  if(*src != "\n" ||*src != "\0") return i;
  else retur -1;
}


 
cber   (2007-10-01 22:40) [6]

Всем спасибо, прошу меня извенить сам же ответил на свой вопрос в [2]..


 
Zeqfreed ©   (2007-10-01 22:43) [7]

char *nthChar(char *str, char c, unsigned int skip)
{
 if (c == 0 || *str == 0) return 0;
 char *p = strchr(str, c);

 if (skip)
   return charPos(++p, --skip);
 else
   return p;
}


Вот как-то так. Проверять лень :)


 
Zeqfreed ©   (2007-10-01 22:45) [8]

> Zeqfreed ©   (01.10.07 22:43) [7]

Ай. Плохой из меня синтаксический анализатор вышел бы.

char *nthChar(char *str, char c, unsigned int skip)
{
if (c == 0 || *str == 0) return 0;
char *p = strchr(str, c);

if (skip)
  return nthChar(++p, c, --skip);
else
  return p;
}


 
homm ©   (2007-10-01 22:45) [9]

> [0] cber   (01.10.07 22:12)
> int main(int argc, char *argv[])
> {
> if (argc < 3) return 0;
***
> return 0;
> }

Надо же, не программа, а один сплошной комментарий :)


 
Галинка ©   (2007-10-01 23:15) [10]

int IndexOf(const char *src, char chr){
  int i=0;
  int IsFirst = 1;

  do{
      if (*src == chr)  IsFirst--;
      i++;
      }
  }while(*src++ != chr && IsFirst < 1)

 i++;
 if(*src != "\n" ||*src != "\0") return i;
 else retur -1;
}


 
1EDBD18E   (2007-10-07 22:12) [11]

От рук с повернутыми вниз ладонями опускались на тормансиан волны оцепеняющей
силы. Повинуясь монотонному напеву, Эвиза и Родис опустили руки, прижав их к бокам и
отставив ладони. Медленно и согласованно они начали вращаться, диковато и повелительно
глядя из-под насупленных бровей на зрителей. Они крутились, торжествующе поднимая руки.
Посыпались удары таинственных инструментов, созвучные добавила: замерли. Сжатые рты
обеих женщин приоткрылись, показав идеальные зубы, их сияющие глаза смеялись
победоносно. Они торжественно запели протяжный древний иранский гимн: «Хмельная и
влюбленная, луной озарена, в шелках полурасстегнутых и с чашею вина… Лихой задор в глазах
ее, тоска в изгибе губ!» Гром инструментов рассыпался дробно и насмешливо, заставив
зрителей затаить дыхание. Неподвижные тела из черного и зеленого металла вновь ожили. Не
сдвигаясь с места, они отвечали музыке переливами всех поразительно послушных и сильных
мышц. Как вода под порывом ветра, оживали внезапно и мимолетно руки и плечи, живот и
бедра. Эти короткие вспышки слились в один непрерывный поток, превративший тела Эвизы и
Родис в нечто неуловимое и мучительно притягательное. Музыка оборвалась.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
15-1191570233
vajo
2007-10-05 11:43
2007.11.04
Полезный девайс


2-1192034694
asm_viator
2007-10-10 20:44
2007.11.04
TPageControl, TPanel...


2-1192004898
Ega23
2007-10-10 12:28
2007.11.04
А почему у TDateTimePicker


15-1191477876
PPop
2007-10-04 10:04
2007.11.04
Проверить, с какой стороны лежит точка.


15-1190835191
Eraser
2007-09-26 23:33
2007.11.04
Delphi, механизм документирования кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский