Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
trustguy
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 16
1

Strtok для двумерного массива строк: При первом же заходе в цикл, функция возвращает NULL

26.02.2015, 11:21. Просмотров 485. Ответов 2
Метки нет (Все метки)

Суть вот в чем: нужно ввести массив строк, затем в каждой строчке выделить 5-ое слово (в каждой строчке всего 5 слов), и перевести в число типа int, но это детали. Я решил выделять слова функцией strtok, а проблема заключается в том, что при первом же заходе в цикл, функция возвращает NULL, хотя должна указатель на следующее слово.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
 
 
int main()
{
 
char **str, **str_copy, *price;
        int i, j, y, n;
 
        printf("Введите кол-во строк в таблице: ");
        scanf("%d", &n);
 
    str = (char**)malloc(n*sizeof(char*));
    for (i = 0; i < n; i++)
        str[i] = (char*)malloc(300*sizeof(char));
 
       price = (char*)malloc(15 * sizeof(char));
 
   
    for (i = 0; i < n; i++)
    {
        for (j = 0, y = 0; str[i][y] != '\n'; j++, y = j - 1)
        {
            scanf("%c", &str[i][j]);
        }
        str[i][y] = '\0';
 
         }
 
        int g = 0, k=0, f=0;
    int chislo;
 
    puts("Введите цену товара: ");
    gets(price);
 
    
 
    char *raz;
    raz = (char*)malloc(15 * sizeof(char));
 
    str_copy = str;
    
        for (int h = 0, k=0; h < j; h++)
        {
 
            raz = strtok(str_copy[kol_str[h]], " ");
            while (k < 4)
            {
                raz = strtok(NULL, " ");  
                k++;                         
            }
            chislo = atoi(raz);
                                                  
            if (chislo == atoi(price)) 
            {
                f=1;
            }
        }
    
 
}
При первом же заходе в цикл strtok возвращает NULL, хотя должна указатель на следующее слово.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2015, 11:21
Ответы с готовыми решениями:

нужна функция для обмена строк двумерного массива на плюсах
доброго времени суток нужна ваша помощь в решении задачи вот здесь она уже решена но это c# а...

Редирект при первом заходе
Привет! Как сделать чтобы при первом обращение в инет через сквид пользователь попадал на...

При первом заходе на сайт спойлер не открывается
не знал, оказывается спойлер при первом заходе на сайт не открывается, после повторного захода или...

Массив: Функция возвращает медиану из всех элементов заданного двумерного массива целых чисел
Всем привет, мне нужна ваша помощь, мне нужно написать программу в Java . Задание: функция...

Тэг Video не работает при первом заходе на сайт
Здравствуйте, уважаемые ) На сайте dream-aero(dot)ru на главной странице присутствует тег video...

2
HighPredator
5693 / 2013 / 723
Регистрация: 10.12.2010
Сообщений: 5,783
Записей в блоге: 3
26.02.2015, 13:56 2
trustguy, ввод строк с клавиатуры у вас... скажем так -- необычный. Сделайте его по-человечески, может и ошибка пропадет.
0
easybudda
Модератор
Эксперт CЭксперт С++
10245 / 6136 / 1543
Регистрация: 25.07.2009
Сообщений: 11,677
26.02.2015, 15:17 3
Цитата Сообщение от trustguy Посмотреть сообщение
#include <iostream>
Если компилировать код, как С, споткнётся уже на этом.
Цитата Сообщение от trustguy Посмотреть сообщение
scanf("%d", &n);
Символ перевода строки остаётся в потоке ввода, читается при первом удобном случае, то есть у вас первая же строка с него и начинается.
И кстати да, ввод и в правду чудно' как-то сделан.
Может и ещё что-то не так...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2015, 15:17

Функция возвращает NULL
Доброго времени суток. Имеется скрипт: &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01...

Функция realloc возвращает NULL
Написал функцию ins (insert) в качестве тренировки. Сам код работает, но когда добавил динамическое...

Функция IMG_LoadTexture постоянно возвращает NULL
У меня произошла проблема. Функция IMG_LoadTexture возвращает NULL в этой функции. int...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru