Форум программистов, компьютерный форум CyberForum.ru

Работа с массивом строк в С - C++

Восстановить пароль Регистрация
 
SKAzo4nik
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 5
20.10.2011, 18:43     Работа с массивом строк в С #1
Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <vector>
 
int main()
{
    char *units1[10] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
    char *units2[10] = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
    char *tens[8] = { "twenty",  "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
    char number[9], *toknumber[9];

    char *tokPtr;

    int i, u, result = 0;

    printf("Enter string: ");
        gets(number);

    tokPtr = strtok( number, " " );
    int p = 0;

    while ( tokPtr != NULL )
    {
        toknumber[p++] = tokPtr;
        tokPtr = strtok( NULL, " " );
    }

    for( i = 0; i < 9; i++ )
    {
        for ( u = 0; u < 3; u++ )
        {
                if ( strcmp(toknumber[u], units1[i]) == 0 ) {
                        result = result + i;
                }
                if ( (strcmp(toknumber[u], units1[i]) == 0) && (toknumber[u+1] == "hundred") ) {
                        result =  (i + 1) * 100;
                }
        }

    }

   printf( "%d\n", result);

   getch();

   return 0;
}
Вводится строка. Потом она разбивается на подстроки и далее сравниваем строку которую ввели и исходный массив units1.
Компилируется, после ввода выдается ошибка, типо выход за границы массива. В чем может быть проблема ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 18:43     Работа с массивом строк в С
Посмотрите здесь:

C++ Работа с массивом строк
C++ Работа с массивом строк. Конкатенация.
динамический массивом строк. Ввод ввывод C++
Неприятная проблема с массивом строк C++
Проблема с массивом строк C++
Работа с массивом строк C++
C++ Работа с массивом
C++ Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
20.10.2011, 19:04     Работа с массивом строк в С #2
Попробуйте заменить gets(number); на
C
1
2
3
fgets(number, 9, stdin);
if (*number != '\0' && number[strlen(number)-1] == '\n')
        number[strlen(number)-1] = '\0';
Используйте здесь
C
1
toknumber[u+1] == "hundred"
strcmp как и везде.
И заголовок vector здесь не нужен.
SKAzo4nik
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 5
20.10.2011, 19:09  [ТС]     Работа с массивом строк в С #3
Программа компилируется, но всегда выдает результат 0
Yandex
Объявления
20.10.2011, 19:09     Работа с массивом строк в С
Ответ Создать тему
Опции темы

Текущее время: 17:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru