Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2007, 16:54   #1
Adamant
Пользователь
 
Аватар для Adamant
 
Регистрация: 20.09.2007
Сообщений: 99
По умолчанию Извлечь число из строки и присвоить его переменной.

Уважаемые кодеры! Помогите недотепе!
Есть некая строка:
char str[] = "\"Некая строка\" 12345";
Как из нее извлечь число "12345" и присвоить его например: int str_ind
Не могу сообразить. Подскажите (желательно на простых Сях).
Голова человеку дадена - не токмо шапку носить!

Последний раз редактировалось Adamant; 09.11.2007 в 17:07.
Adamant вне форума Ответить с цитированием
Старый 09.11.2007, 17:56   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А если чисел несколько? Или нет вообще?
Carbon вне форума Ответить с цитированием
Старый 09.11.2007, 21:37   #3
Adamant
Пользователь
 
Аватар для Adamant
 
Регистрация: 20.09.2007
Сообщений: 99
По умолчанию

Как на ваш взгляд такое решение:
Код:
int main()
  {
    FILE * fp;
    int i = 0, j = 0;
    char str[] = "qwerty   123456789  цшашц 1234 ";
    char str2[] = "";
    if( ( fp = tmpfile() ) == 0 )
      {
        puts( "Can not create temporary file" );
        Sleep( 2000 );
        exit ( 1 );
      }

    while( str[i] )
      {
        if( isdigit( str[i] ) )
          {
            while( isdigit( str[i] ) ) // извлечь только первое число
              {
                if( str[i] == '\0' )
                  break;
                fputc( str[i], fp );
                i++;
              }
            break;
          }
        i++;
      }
    rewind( fp );
    fgets( str2, 80, fp );
    fclose( fp );
    if( !strlen( str2 ) )
      puts( "Numbers is not found" );
    else
      puts( str2 ); // выводит    123456789
На мой взгляд приемлемый вариант. Интересна любая критика
профи.
С уважением Вячеслав.
Голова человеку дадена - не токмо шапку носить!
Adamant вне форума Ответить с цитированием
Старый 12.11.2007, 07:24   #4
LinuxUser
 
Регистрация: 06.11.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Adamant Посмотреть сообщение
На мой взгляд приемлемый вариант. Интересна любая критика
профи.
Я не профи, но помоему так делать нельзя:
Код:
char str2[] = "";
...
fgets( str2, 80, fp );
Попробуйте скомпилировать и выполнить следующий код:
Код:
#include <stdio.h>

int main()
	{char str[]="";
	int a;
	str[0]='a';
	str[1]='b';
	str[2]='c';
	str[3]=0;
	a=-1;
	printf("%s\n",str);
	return 0;
	}
Уверен, что он выдаст не то что вы ожидаете.
LinuxUser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из строки в число и обратно AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.05.2010 18:49
Извлечь в одну ячейку несколько значений из строки которые удовлетворяют заданному условию. Dorvir Microsoft Office Excel 5 08.04.2008 16:12
как присвоить char'у символ перевода строки? Retiz Помощь студентам 6 06.04.2008 00:05
присвоить переменной целого типа значение поля key полученное в результате выполнения SQL запроса Worms БД в Delphi 5 10.01.2008 21:07
Как извлечь из двух столбцов несовпадающие строки Shavminator Microsoft Office Excel 4 28.12.2007 12:23