Russian Qt Forum
Ноябрь 26, 2024, 06:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Поиск символа с конца заданной строки  (Прочитано 12431 раз)
sobre
Гость
« : Сентябрь 10, 2009, 22:18 »

Поиск символа с конца заданной строки
как реализовать?
Записан
sobre
Гость
« Ответ #1 : Сентябрь 10, 2009, 22:24 »

точнее как узнать последний символ в строке?
Записан
spectre71
Гость
« Ответ #2 : Сентябрь 10, 2009, 22:24 »

Поиск символа с конца заданной строки
как реализовать?
По циклу с конца строки Улыбающийся
Записан
BaltikS
Гость
« Ответ #3 : Сентябрь 10, 2009, 22:24 »

QString::lastIndexOf
Записан
BaltikS
Гость
« Ответ #4 : Сентябрь 10, 2009, 22:25 »

QString::right ( 1 )
Записан
sobre
Гость
« Ответ #5 : Сентябрь 10, 2009, 22:32 »

char *str;                                 
str=new char[255];       
FILE * PP1;
int priznak2=0;
   PP1=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","r");
   if (PP1)
   {
      while (fgets(str,255,PP1)!=0)
      {
      if (strstr(str,"IPADDR=")>0) //(нашел нужную строку и перешел к её началу)
                что тут писать?) //(надо узнать последний символ)
       priznak2 = 1;
    }
    fclose(PP1);
   }
Записан
SABROG
Гость
« Ответ #6 : Сентябрь 10, 2009, 22:34 »

Кажется Qt тут не к месту, всё какое-то Сишное.
Записан
sobre
Гость
« Ответ #7 : Сентябрь 10, 2009, 22:48 »

да ет кусочек маленький над дописать
Записан
spectre71
Гость
« Ответ #8 : Сентябрь 10, 2009, 23:00 »

да ет кусочек маленький над дописать
Именно то, что тебе нужно, то и напиши!
Это форум по QT, а не сайт по удаленному обучению языку "C".
Читай книжки!

int len  = strlen(str);
char ch;
if(len) {
  ch = str[len-1];
}
Записан
ufna
Гость
« Ответ #9 : Сентябрь 10, 2009, 23:11 »

может быть автор спрашивал о QString::lastIndexOf(...) ?
Записан
sobre
Гость
« Ответ #10 : Сентябрь 10, 2009, 23:12 »

конкретно мне нужно сделать: в зависимости от последней цифры выставлялся нужный признак
Код:
PP1=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","r");
if (PP1)
{
while (fgets(str,255,PP1)!=0)
{
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".250"))
   priznak2 = 1;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".251"))
   priznak2 = 2;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".252"))
   priznak2 = 3;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".253"))
   priznak2 = 4;
    }
    fclose(PP1);
}
if (priznak2 == 1)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
   fputs("DEVICE=eth0\n",PP2);
   fputs("IPADDR=1.1.1.1\n",PP2);
   fputs("NETMASK=255.255.255.0\n",PP2);
   fputs("ONBOOT=yes\n",PP2);
   fclose(PP2);
}
}

else if (priznak2 == 2)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
   fputs("DEVICE=eth0\n",PP2);
   fputs("IPADDR=1.1.1.2\n",PP2);
   fputs("NETMASK=255.255.255.0\n",PP2);
   fputs("ONBOOT=yes\n",PP2);
   fclose(PP2);
}
}
else if(priznak2 == 3)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
   fputs("DEVICE=eth0\n",PP2);
   fputs("IPADDR=1.1.1.3\n",PP2);
   fputs("NETMASK=255.255.255.0\n",PP2);
   fputs("ONBOOT=yes\n",PP2);
   fclose(PP2);
}
}
else if(priznak2 == 4)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
   fputs("DEVICE=eth0\n",PP2);
   fputs("IPADDR=1.1.1.4\n",PP2);
   fputs("NETMASK=255.255.255.0\n",PP2);
   fputs("ONBOOT=yes\n",PP2);
   fclose(PP2);
}
}
вот так пойдет?
« Последнее редактирование: Сентябрь 10, 2009, 23:26 от sobre » Записан
spectre71
Гость
« Ответ #11 : Сентябрь 10, 2009, 23:44 »

конкретно мне нужно сделать: в зависимости от последней цифры выставлялся нужный признак
...
вот так пойдет?
- Ты хоть понимаешь разницу между цифрой, числом и подстрокой?
- Что это такое?
Цитировать
if (strstr(str,"IPADDR=")>0) (str.endsWith(".250"))
Ты на чем пишешь, какие библиотеки используешь, какого типа у тебя str
-
Цитировать
{
      if (strstr(str,"IPADDR=")>0)
      (str.endsWith(".250"))
       priznak2 = 1;
      if (strstr(str,"IPADDR=")>0)
      (str.endsWith(".251"))
       priznak2 = 2;
      if (strstr(str,"IPADDR=")>0)
      (str.endsWith(".252"))
       priznak2 = 3;
      if (strstr(str,"IPADDR=")>0)
      (str.endsWith(".253"))
       priznak2 = 4;
    }
Что это за ерунда, на каком языке написано, уж точно не на "C" или "C++"
Записан
sobre
Гость
« Ответ #12 : Сентябрь 11, 2009, 00:12 »

Вот код который должен прочитав файл ifcfg-eth0 найти строку с началом вида IPADDR= и выполнить проверку на конец строки.
Если конец строки .250 то присвоить переменной priznak2 единицу, если .251 присвоить 2, если .252 присвоить 3, если .253 присвоить 4.
В зависимости от значения переменной priznak2 записать в этот файл нужную информацию.

Код:
char *str;                                 
str=new char[255];       
FILE * PP1;
int priznak2=0;
PP1=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","r");
if (PP1)
{
while (fgets(str,255,PP1)!=0)
{
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".250"))
    priznak2 = 1;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".251"))
    priznak2 = 2;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".252"))
    priznak2 = 3;
if (strstr(str,"IPADDR=")>0)
(str.endsWith(".253"))
    priznak2 = 4;
    }
    fclose(PP1);
}
if (priznak2 == 1)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
    fputs("DEVICE=eth0\n",PP2);
    fputs("IPADDR=1.1.1.1\n",PP2);
    fputs("NETMASK=255.255.255.0\n",PP2);
    fputs("ONBOOT=yes\n",PP2);
    fclose(PP2);
}
}

else if (priznak2 == 2)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
    fputs("DEVICE=eth0\n",PP2);
    fputs("IPADDR=1.1.1.2\n",PP2);
    fputs("NETMASK=255.255.255.0\n",PP2);
    fputs("ONBOOT=yes\n",PP2);
    fclose(PP2);
}
}
else if(priznak2 == 3)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
    fputs("DEVICE=eth0\n",PP2);
    fputs("IPADDR=1.1.1.3\n",PP2);
    fputs("NETMASK=255.255.255.0\n",PP2);
    fputs("ONBOOT=yes\n",PP2);
    fclose(PP2);
}
}
else if(priznak2 == 4)
{
PP2=fopen("/etc/sysconfig/network-scripts/./ifcfg-eth0","w");
if (PP2)
{
    fputs("DEVICE=eth0\n",PP2);
    fputs("IPADDR=1.1.1.4\n",PP2);
    fputs("NETMASK=255.255.255.0\n",PP2);
    fputs("ONBOOT=yes\n",PP2);
    fclose(PP2);
}
}
правильно ли я реализовал?

зы Основная прога написана на qt
Записан
spectre71
Гость
« Ответ #13 : Сентябрь 11, 2009, 00:34 »

правильно ли я реализовал?
Нет! Это даже не скомпилиться, чего ты даже не попробовал!
Не обижайся, но это бред.
Учи язык, почитай книжки по "C/C++". Обратись за помощью к сокурсникам, если трудно разобраться самому.
Записан
sobre
Гость
« Ответ #14 : Сентябрь 11, 2009, 00:36 »

сори, нужно было еще в первом посте написать что первый раз вижу исходный код и разбираюсь.
прошу помощи ибо на работе программист в отпуске а реализовать оч надо
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.129 секунд. Запросов: 21.