Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

Как string перевести в char?   Найти похожие ветки 

 
alexis   (2003-11-12 14:43) [0]

Уважаемые мастера! Мне крайне необходимо узнать можно ли перевести string тип в Char тип.
Задача в упрощенном варианте такова:есть строковая переменная str1,есть символьная переменная ch1.Мне надо получить в ch1 первую букву строки str1.Пытался решить таким образом:
ch1:=copy(str1,1,1);

Не работает по причине несовместимости типов :(
Буду признателен, если подскажете способ решения проблемы.


 
Zacho ©   (2003-11-12 14:45) [1]

ch1:=str1[1];


 
pasha_golub ©   (2003-11-12 14:51) [2]

Удалено модератором
Примечание: Offtopic


 
VAleksey ©   (2003-11-12 15:42) [3]

Удалено модератором
Примечание: Offtopic


 
tipman ©   (2003-11-12 16:03) [4]

У меня ранее тоже возникал такой вопрос и решил я его так же как показал Zacho , но .....
можно ли закинуть сразу всю строку типа String в массив Char?


 
Jel ©   (2003-11-12 16:24) [5]


> можно ли закинуть сразу всю строку типа String в массив
> Char?


А строка и есть массив Char.


 
tipman ©   (2003-11-12 16:39) [6]

var a:String;
b:Array [1..100] of Char;
.....
.....
.....
.....
a := "";
b := "qwertyuiop[]lkjhgfdsazxcvbnm";
a := b;

Получается ошибка?


 
panov ©   (2003-11-12 16:56) [7]

var
s: String;
b:Array [1..100] of Char
begin
...

Move(s[1],b[0],Length(s));


 
VMcL ©   (2003-11-12 17:05) [8]

>panov © (12.11.03 16:56) [7]

Move(s[1],b[ 1],Length(s));

или

Move(s[1],b[Low(b)],Length(s));

:)


 
panov ©   (2003-11-12 17:07) [9]

Точно... Массив-то с единицы определен-)


 
kull ©   (2003-11-12 17:12) [10]


> panov © (12.11.03 16:56) [7]

Эх...

Move(s[1],b[Low(b)],Min(Length(s),High(b)+1));


 
Pattern ©   (2003-11-12 17:18) [11]

ch1 := PChar(str1);


 
panov ©   (2003-11-12 17:26) [12]

КТо больше?


 
Alexis ©   (2003-11-15 00:25) [13]

Спасибо, Zacho, помогло.Как раз то,что нужно.А строку в массив символов перевести можно так:

var
dlina,i:integer;
stroka:string;
mas_symb:array [1..100] of char;
...
dlina:=length(stroka);
for i:=1 to dlina do mas_symb[i]:=stroka[i];

По-моему наиболее разумное решение.


 
Zacho ©   (2003-11-15 00:31) [14]


> Alexis © (15.11.03 00:25) [13]

Не, move быстрее и писать меньше :)


 
Johnmen ©   (2003-11-15 00:50) [15]

>Alexis © (15.11.03 00:25)

А вдруг длина строки более 100 ? :)))))))))))))))

Не спеши делиться своими "познаниями". Лучше освой основы пр-ия...


 
Palladin ©   (2003-11-15 06:55) [16]


> Alexis © (15.11.03 00:25) [13]

О да... заниматся копированием массивов туда сюда, это очень ответственная задача. Особенно для программиста, которому делать больше нечего. И особенно через for.

Ответь мне на вопрос, что же тебе мешает изначально обращатся к строке как к массиву символов?


 
Anatoly Podgoretsky ©   (2003-11-15 11:59) [17]

Alexis © (15.11.03 00:25) [13]
Очень не разумное, ни по надежности ни по эффективности. Если второе не важно, то с первым придешь к нам с вопросом - у меня AV, а в программе все правильно.


 
Romkin ©   (2003-11-15 13:01) [18]

2Anatoly Podgoretsky По всей видимости, в некоторых компаниях любят примерно такой код, вот и получаются уязвимости с переполнением буфера :)
2Alexis строки в Object Pascale очень хорошо сделаны, массивами символов можно и не пользоваться, заодно и вылетов за границы не будет. А твой код в [13] может привести к чему угодно.


 
Anatoly Podgoretsky ©   (2003-11-15 13:06) [19]

Судя по количеству сообщений, так кроме отроков никто не работает.


 
Anatoly Podgoretsky ©   (2003-11-15 13:07) [20]

На форуме часто стречал следующее, почему не анализируем ошибки - ответ у меня ошибок не будет :-)


 
LastLamer ©   (2003-11-16 03:02) [21]

StrPCopy?



Страницы: 1 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
6-90047
Wadim
2003-10-03 02:05
2003.11.27
Lan


8-90014
Darlock
2003-07-22 16:49
2003.11.27
Печать картинки


14-90098
Romkin
2003-11-06 11:13
2003.11.27
Что-то мне это напоминает...


6-90023
Sirus
2003-10-01 15:07
2003.11.27
Как организовать докачку файлов с ServerSocket и ClientSocket?


1-89911
Lamer
2003-11-18 19:26
2003.11.27
Caption Кнопки