![]() |
Помогите пожалуйста решить проблему со словами.
Проблема такая - я не пойму как например в условии if, например если я ввожу с клавиатуры слово, чтобы он в уловии if отвечал, но не дает, так как он кроме цифр и нескольких символов ничего не хочет брать, буквы задал при помощи ' ' - единичных кавычек, и типом char. Но проблема в том, что он берет только где то до 4-х символов, а если написать больше, то будет ошибка - error C2015: too many characters in constant. Не понимаю в чем дело.
|
dakishi,
кто этот таинственный он? и неплохо бы еще кусочек кода, а то, знаете ли, "принеси то - не знаю что" не очень-то... |
dakishi, Какой тип приложения? Консольный? Win32? Разработка секретная? Тем более что есть уже код, давайте его в студию. :)
|
Вот простой код с использованием того, что я хочу, рабочий. Это файл C++ source file - Cpp называется всегда. Ну так вот сам код:
Код:
#include<iostream.h> Цитата:
|
dakishi, используй указатель.
Цитата:
return 0; И отсутствует строка Код:
using namespace std; Код:
#include <iostream.h> |
Может быть я конечно ошибаюсь, но char это символьный тип... так как же в него тогда уместить `water`?!?!
мб использовать char *q1 либо char q1[количество символов]!!! |
LilLoco, В принципе да, но вдруг автору нужен ввод только одного символа? :)
|
|
Цитата:
Вот вы сказали char*q1 или char[кол-во символов] - это писать там же, где я объявил тип переменных ? Просто дописать квадратные скобки, или знак умножения ? И еще, char[ кол-во символов] - в квадратных скобках число поставить ? А где сама переменная ? Объясните, пожалуйста. Если не трудно, пример приведите, как использовать то, что вы написали. Потому что я не очень понимаю, что значит это умножение и зачем оно, а количество символов в скобках - как пользоваться. |
Цитата:
Цитата:
Код:
char ch; // в переменную 'ch' можно ввести один символ С указателем - * можно так. Код:
#include <iostream.h> |
Ну За Путаницу Извините... :sorry: :sorry: :sorry: Ну А Пример Уже Привел Drongo !!!
|
Цитата:
Код:
#include <iostream> |
Массив - это не константа! на сколько я помню с++ то размер массива можно задавать только при помощи констант! константы это те данные которые невозможно изменить ни в каком месте программы кроме как в объявлении! а массив это как бы набор данных одного и того же типа!
Код:
|
Цитата:
Код:
char *name; Код:
#include <string> Код:
string mystring; Код:
'A' Код:
#include <iostream> |
Цитата:
Символьные указатели - это настолько сложная в понимании и опасная в использовании тема, что новичкам её лучше не касаться. |
Спасибо большое! Я все понял. Вы мне очень помогли. Ну, я пока что не дошел до массивов. Я дошел до темы "функции", в которой пока копаюсь, она очень длинная. Да, со string легче, но я обязательно освою и тот способ, с массивом, когда дойду до него. Еще, способ с массивом так много времени тратит, неужели он такой полезный ? А то по сравнению с другим, как то очень долго, хоть и профессионально, он наверно много других возможностей дает, но все же.
|
Цитата:
Для экспериментов лучше использовать значения типа int (цифры) Цитата:
Функции работы символьными массивами работают немного быстрее, но программисту при этом самому нужно контролировать операции выделения памяти и проверку длины строк. При этом малейшая ошибка может повредить данные самым непредсказуемым образом. Вот простой пример Код:
const char *sourse = "Сорок тысяч обезьян в одно место сунули банан"; //Указатель на массив символов, размещённый в области констант В*результате при работе программы неизбежно возникнет множество ошибок, которые "неизвестно почему" проявятся в других участках кода. Выявить причину такой ошибки - дело очень сложное. Так что лучше сразу использовать объекты типа string, которые обеспечивают автоматическую проверку размеров строк и выделения областей памяти. Благо мощность ЭВМ позволяет это делать. А символьные указатели используют только в тех участках программы, где требуется максимальное быстродействие. Но создание таких программ - удел профессионалов, которые хорошо понимают, что и как работает |
Спасибо большое!
|
Время: 17:12. |
Время: 17:12.
© OSzone.net 2001-