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

Как работает функция strtok - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переведите, пожалуйста, с паскаля на C++ http://www.cyberforum.ru/cpp-beginners/thread837749.html
type Person = record Surname, Name, Adress, City: string; Post_index: string; Telephone: string; case hobby: (Computer, Music) of Computer: (type_computer: string;
C++ сортировка массива в одномерном массиве из 23 элементов найти среднее арифметическое всех отрицательных чисел и среднее геометрическое всех положительных чисел помогите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread837747.html
Удаление строчки из структуры C++
Всем добрый день, вот такая проблема возникла, нужно удалить строчку из структуры, но не знаю как.... Суть программы: программа считывает из файла данные сотрудников (имя, фамилия, возраст, зарплата), и вносит их в структуру, из которой проводится поиск и удаление сотрудника, при нажатие на кнопку "*" Вот кусок программы: using namespace std; const int kol=100; extern bool flag; ...
нужно описать класс Студент. правильно все делаю? C++
#include <iostream> #include <iomanip> #include <fstream> #include <string.h> //Описание класса Студент using namespace std; class Student { private:
C++ Двухмерный динамический массив http://www.cyberforum.ru/cpp-beginners/thread837717.html
a=new int* for(int i=0;i<m;i++) a=new int; Вот создание двухмерного динамического массива.Начеркал небольшой рисунок с представлением динамического массива в памяти: http://s018.***********/i503/1304/1a/6310d66e90df.jpg Где на рисунке **a, **a+1,*(a+1),*(*(a+1), *(*a+1), *(*(a+1)+1)? Я попытался все это вывести, и конкретно запутался, перечеркнул кучу рисунков. Помогите пожалуйста...
C++ Мультипоточность (очень просто) Здравствуйте! Подскажите пожалуйста, почему когда я делая свою "программу" многопоточной в 3 потока(один основной и два дочерних), скорость выполнения увеличивается? // 1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <windows.h> #include <tchar.h> #include <strsafe.h> подробнее

Показать сообщение отдельно
knf
16 / 16 / 2
Регистрация: 18.09.2012
Сообщений: 184

Как работает функция strtok - C++

14.04.2013, 19:08. Просмотров 990. Ответов 1
Метки (Все метки)

Как работает функция strtok.
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
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
int main()
{   int i;
    i=0;
     char str[100];
    cout<<"Enter your string"<<endl;
     gets(str);
     char* s = strtok(str,",.?!;: ");
     bool flag2=true;
     do {
    
        bool flag = true;
       for (int i=0; i<strlen(s)/2; i++)
              if (s[i]!=s[strlen(s)-i-1])
                  {
                        flag=false;
                        break;
                }
       if (flag) 
       {
          if (flag2)
          {
                flag2=false;
        cout<<"ALL WORD-PALINDROMES IN TEXT"<<endl;
          }
        cout<<s<<endl; 
         
                  
        
       }  
       
    
    } while (s=strtok(NULL,",.?!;: "));
      
     system("pause");
     return 0;
}
В s сохраняется первое слово, перед которым найдется один из этих знаков ,.?!;:
После, в цикле do while сначала проверяется первое слово на симметричность, то есть на то, что является ли слово палиндромом и тут-же выводится. Казалось бы, в цикле должно проверится только первое найденное слово, но в s вдруг появляется второе слово.... Как работает strtok в этом случае и вообще?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru