char、pchar、string互相转换
1.string转换成pchar
可以使用pchar进行强制类型转换,也可以使用StrPCopy函数
- var
- s:string;
- p,p1:PChar;
- begin
- s:='Hello Delphi';
- p:=PChar(s);
- ShowMessage(p);
- p1:=StrAlloc(Length(s)+1);
- StrPCopy(p1,s);
- ShowMessage(p1);
- StrDispose(p1);
- end;
2.pchar转换成string
pchar可以直接当string用,也可以用strpas函数转换一下
- var
- s,s1,s2:string;
- p:PChar;
- begin
- s:='Hello Delphi';
- p:=PChar(s);
- ShowMessage(p);
- s1:=p;
- ShowMessage(s1);
- s2:=StrPas(p);
- ShowMessage(s2);
- end;
3.char数组转换成string
使用StrPas函数获取数组的首地址
- var
- c:array [0..11] of Char;
- s:string;
- begin
- c[0]:='H';
- c[1]:='e';
- c[2]:='l';
- c[3]:='l';
- c[4]:='o';
- c[5]:=' ';
- c[6]:='D';
- c[7]:='e';
- c[8]:='l';
- c[9]:='p';
- c[10]:='h';
- c[11]:='i';
- s:=StrPas(@c[0]);
- ShowMessage(s);
- end;
4.string转char数组
使用move或者copymemory函数
- var
- s:string;
- c:array of Char;
- i:Integer;
- begin
- s:='Hello Delphi';
- SetLength(c,Length(s));
- //Move(s[1],c[0],Length(s));//move和CopyMemory都行
- CopyMemory(@c[0],PChar(s),Length(s));
- for i:=Low(c) to High(c) do
- begin
- ShowMessage(string(c[i]))
- end;
- end;
5.char数组转pchar
- var
- c:array [0..11] of Char;
- p:PChar;
- begin
- c:='Hello Delphi';
- //p:=@c[0];
- p:=PChar(@c[0]);
- ShowMessage(StrPas(p));
- end;
6.pchar转char数组
使用move或者CopyMemory函数
- var
- s:string;
- p:PChar;
- c:array of Char;
- i:Integer;
- begin
- s:='Hello Delphi';
- p:=PChar(s);
- SetLength(c,Length(s));
- //Move(p^,c[0],Length(s));//move和CopyMemory都行
- CopyMemory(@c[0],p,Length(s));;
- for i:=Low(c) to High(c) do
- begin
- ShowMessage(string(c[i]))
- end;
- end;
char、pchar、string互相转换的更多相关文章
- 转:char*, char[] ,CString, string的转换
转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准 ...
- char[],char *,string之间转换
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char *char str[] = "lala";char *str1 ...
- char*,const char*和string 三者转换
1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua&quo ...
- 【转载】char*,const char*和string 三者转换
本文转自 http://blog.csdn.net/perfumekristy/article/details/7027678 const char* 和string 转换 const char*转换 ...
- C# char[]与string互相转换的两种方法
1.string转换为char[]:char[] string.ToCharArray(); static void Main(string[] args) { s ...
- C# char 和string之间转换
har数组要转换成string可没想象的那么容易.需要使用到System.Text.StringBuilder!实例如下: char[] temp={a,b,c};System.Text.String ...
- 字符串后面空字符的问题(char*与string的转换)
今天AC了不少题,困扰已久的Time limit error 也解决了,记住下次用STL容器的时候一定要清空容器. 其次是字符数组与字符串的浅谈. 字符数组是以'\0'结尾的,所以在字符数组赋值给字符 ...
- CString与string、char*的区别和转换
转自:http://blog.csdn.net/luoweifu/article/details/20232379 我们在C++的开发中经常会碰到string.char*以及CString,这三种都表 ...
- 【转】CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...
随机推荐
- redis哈希操作
用户可以通过执行hset命令为哈希中的指定字段设置值: 127.0.0.1:6379> hset hash field value 根据给定的字段是否存在于散列中,hset命令的行为也会有所不同 ...
- Swiper 移动端全屏轮播图效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Httpclient 工具类(get,put)
package com.googosoft.until; import java.io.IOException; import org.apache.http.HttpEntity; import o ...
- 搭建 VUE + NODE.JS + ElementUI 学习过程中问题总结
1.exports 和 module.exports require 用来加载代码,而 exports 和 module.exports 则用来导出代码. module.exports 初始值为一个空 ...
- 隐藏pyqt中调用matplotlib图片中的工具栏
方法: # pyqtgraph使用matplotlib import pyqtgraph.widgets.MatplotlibWidget as mw a_plt = mw.MatplotlibWid ...
- 【WPF学习】第十四章 事件路由
由上一章可知,WPF中的许多控件都是内容控件,而内容控件可包含任何类型以及大量的嵌套内容.例如,可构建包含图形的按钮,创建混合了文本和图片内容的标签,或者为了实现滚动或折叠的显示效果而在特定容器中放置 ...
- Catalyst 6500/6000 Switches ARP or CAM Table
译:https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/71079-arp-cam-ta ...
- leetCode练题——38. Count and Say
1.题目 38. Count and Say The count-and-say sequence is the sequence of integers with the first five te ...
- 棍子Sticks(poj_1011)[经典搜索]
[题意描述] George用相同的长度棍子,将他们随机切成最多64个单位的长度,现在,他想回到原来的状态,但他忘了他原来的多少根,以及他们原本是多长.请帮助他和设计一个程序,计算最小的可能的原始长度. ...
- Django框架之模板路径及静态文件路径配置
内容: (1)模板文件路径的配置 (2)静态文件路径的配置 一.模板文件路径的配置 模板文件主要通过jinja2模板进行渲染html页面,实现动态页面. 步骤一:创建一个template的文件夹,用于 ...