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

Как объявить строковую переменную? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчитать в строке количество символов до точки с запятой и после нее. http://www.cyberforum.ru/cpp-beginners/thread357040.html
Всем доброго времени суток. Прощу прощения, снова нужна ваша помощь. Если кто может помочь буду благодарен. Строки 1. В заданной строке имеется одна точка с запятой ( ; ). Подсчитать количество символов до точки с запятой и после нее. Заранее спасибо. С ув. Ierehon.
C++ Перегрузка оператора += Есть два класса: Vec4(вектор из 4х float) и Mat4(вектор из 4х Vec4). Проблема в том что при перегрузке в Mat4 операции += я получаю ошибку компиляции In member function 'Mat4& Mat4::operator+=(Mat4&)': error: no match for 'operator+=' in '((Mat4*)this)->Mat4::elem.std::vector<_Tp, _Alloc>::operator (i) += Mat4::operator(int)(((int)i))'| 33|note: candidates are: Vec4& Vec4::operator+=(Vec4&)|... http://www.cyberforum.ru/cpp-beginners/thread357032.html
C++ условие
Ответ скорее всего прост,но не могу придумать никак #include <stdio.h> #include <conio.h> #include <locale.h> int fact(int n)//в цикле со счётчиком умножают переменную на счетчик, который уменьшается на 1 со значения = число факториал которого находят до 1 { int result=1;
C++ Расчитать значение функии f(x) по соответсвующей формуле.
Добрый день, вот моё задание: Составьте алгоритм программы, которая принимает от пользователя значение x и в зависимости от его значения, расчитывет значение функии f(x) по соответсвующей формуле. Проверка того, что функция не определена при введенном значении х, не обязательна. Если введённое число подходит под условие 1, то расчитывается f1 формуле, если под условие 2, то по f2 формуле, если...
C++ Создание динамического массива http://www.cyberforum.ru/cpp-beginners/thread356987.html
const int Num=5; const int SIZE=4096 * Num; SHORT Buf; как такое заменить, если Num- инициализируется при загрузке программы, читается из файла. int Num; int SIZE=4096 * Num; SHORT* Buf = new SHORT;
C++ Компиляторы Скажите пожалуйста какие сейчас есть компиляторы для С++ и какой из них на сегодняшний день самый распространённый и широкоиспользуемый? подробнее

Показать сообщение отдельно
nxnx
Формучанин
361 / 292 / 16
Регистрация: 02.11.2010
Сообщений: 1,226
28.09.2011, 12:13     Как объявить строковую переменную?
-=ЮрА=-, как уже выше было упомянуто-изменение строкового литерала-неопределённое поведение.(в стандарте это написано)
Неопределённое поведение, может совпадать с тем поведением которое ожидает пользователь.
А может и не совпадать(поведение не определено).

1.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
int main()
{
    char a[] = "VasiaPupkin";
    a[3] = '!';//Всё ок
    const char * b = "VasiaPupkin";
    b[3] = '!';//Ну да надеемся))) const в жизни не позволит этого сделать
    return 0;
}
и даже так нельзя делать:
C++
1
    *((char*)&b[3]) = '!';
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    char a[] = "VasiaPupkin";
    std::cout<<a<<"\r\n";
    a[3] = '!';//Всё ок
    std::cout<<a<<"\r\n";
 
    char * c = (char *)"VasiaPupkin";
    std::cout<<c<<"\r\n";
    c[3] = '!';//И вот так НЕЛЬЗЯ делать
    std::cout<<c<<"\r\n";
    getch();
    return 0;
}
3.
Вот так тоже НЕЛЬЗЯ делать:
C++
1
2
3
char * s = (char *)"русский";
CharToOem(s,s);//нельзя, т.к. попытка изменить строковой литерал
printf("%s",s);
 
Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru