Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.01 c
4-90164
Davinchi
2003-10-04 14:38
2003.11.27
Завершение работы приложения


1-89899
Win error
2003-11-15 03:24
2003.11.27
Документ Word


8-90013
Alex210819
2003-06-26 12:39
2003.11.27
Проигрывание Файлов МР3


6-90028
SPIRIT
2003-10-01 01:53
2003.11.27
Отправить письмо


7-90150
LeNa19
2003-09-15 23:33
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский