Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизКак 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c