Главная страница
    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.48 MB
Время: 0.008 c
14-90076
k-man
2003-11-04 20:10
2003.11.27
Max Payne 2:The Fall of Max Payne


1-89850
azazello
2003-11-16 10:09
2003.11.27
Вопрос про версию программы и дату создания билда


3-89777
Dimaz-z
2003-11-06 20:39
2003.11.27
Индексы...


14-90081
primus
2003-11-04 23:52
2003.11.27
В продолжение темы


1-89827
md
2003-11-10 13:21
2003.11.27
Получение параметров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский