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

strtok - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Трудности с SendMessage http://www.cyberforum.ru/cpp-beginners/thread714985.html
Есть такой вот код: //Autor Anonim #include <conio.h> #include <iostream> #include <ostream> #include <Windows.h> #include <WinUser.h> #include <clocale> using namespace std;
C++ Не могу понять в чем ошибка #include<stdio.h> #include<math.h> #include<conio.h> int main(){ double a,b,c; double x1,x2,D,x; printf("Enter a b c for space:"); scanf("%lf %lf %lf",&a,&b,&c); D=b*b-4*(a*c); printf("\nD=%lf",D); http://www.cyberforum.ru/cpp-beginners/thread714967.html
Как создать клас Fraction C++
класс фракшион
Задача по ООП Рыбки в озере C++
Сам я в программировании полный ноль так что прошу помощи что бы разобраться хоть как то со всем этим. Нужно написать программу результатом которой будет изображено озеро и два вида рыб: щуки и караси. Рыбки плавают и если щука близко подплывает к карасю то его съедает. Как я понимаю код можно разделить на части: описание класса озеро, рыбки, щука, карась и описание того как они ведут себя....
C++ Указатель на шаблон функции http://www.cyberforum.ru/cpp-beginners/thread714946.html
Доброй ночи всем! Есть шаблон функции сравнения двух чисел: template <typename _Tp> bool comp(_Tp & a, _Tp & b) { return (a >= b)? 1 : 0; } Задание звучит так:
C++ Свойства наследования 1) Объект класса-потомка может вызывать некоторые методы класса-предка. 2) Наследование - это механизм получения нового класса на основе уже существующего. 3) Статические переменные не наследуются. 4) При создании объекта класса-потомка память для хранения private-переменных класса-предка не выделяется. 5) Объявления friend не наследуются. 6) Класс, от которого наследуются называется... подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.12.2012, 12:18  [ТС]     strtok
строка 44 я объявляю новый массив str1[100] и дальше инициализирую его значениями массива str[100];
C++
1
2
3
char *str1[100];
    for(int i=0;i<100;i++)
        *(str1+i)=*(str+i);
я еще перепроверял массив ли это указателей :
C++
1
2
3
4
5
for(int i=0;i<3;i++)
    {
        cout <<"str1["<<i<<"]= "<<str1[i]<<endl;
        cout <<"str["<<i<<"]= "<<str[i]<<endl;
    }
проверил адреса если б это были 2массива на одни и те же значения то наверно у них бы были адреса однинаковые:
C++
1
2
cout <<"&str[0]= "<<&str[0]<<" &str1[0]= "<<&str1[0]<<endl;
    cout <<"*str= "<<*str<<" *str1= "<<*str1<<endl;
выводит что адреса разные а значение одинаковые; значит это два разных массива?
еще проверял изменял елемента одного из массивов и выводил значение другого
допустим так:
C++
1
2
str1[1]="kdjflasdjflkasdjlfjasdlf";
cout <<"str[1]= "<<str[1]<<" str1[1]= "<<str[1]<<endl;
выводится два разных значения;
все правильно ведь два разных массива казалось бы?;
но когда используеш strtok то меняются оба
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int i=0;i<3;i++)
    {
        leksema=strtok(str1[i]," ");
        while(leksema!=NULL)    
        {
            cout <<"leksema= "<<leksema<<endl;
            leksema=strtok(NULL," ");
        }
        
    }
    
    for(int i=0;i<3;i++)
    {
        cout <<"str1["<<i<<"]= "<<str1[i]<<endl;
        cout <<"str["<<i<<"]= "<<str[i]<<endl;
    }
в strtok str1 передаю; меняется и str;
во загадка?: если просто изменить значение какого нибудь элемента массива то значение во втором массиве не меняется; а если через функцию то сразу и во втором массиве значения меняется ???
 
Текущее время: 08:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru