45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:vc数据类型有哪些?

vc数据类型有哪些?

2016-08-25 07:18:53 来源:www.45fan.com 【

vc数据类型有哪些?

数据类型与字符处理函数
=================================================

VC常见数据类型转换
int i = 100;
long l = 2001;
float f=300.2;
double d=12345.119;
char username[]="女侠程佩君";
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
一、其它数据类型转换为字符串

短整型(int)
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2); ///按二进制方式转换
长整型(long)
ltoa(l,temp,10);

二、从其它包含字符串的变量中获取指向该字符串的指针

CString变量
str = "2008北京奥运";
buf = (LPSTR)(LPCTSTR)str;
BSTR类型的_variant_t变量
v1 = (_bstr_t)"程序员";
buf = _com_util::ConvertBSTRToString((_bstr_t)v1);
三、字符串转换为其它数据类型
strcpy(temp,"123");
短整型(int)
i = atoi(temp);
长整型(long)
l = atol(temp);
浮点(double)
d = atof(temp);
四、其它数据类型转换到CString
使用CString的成员函数Format来转换,例如:

整数(int)
str.Format("%d",i);
浮点数(float)
str.Format("%f",i);
字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值
str = username;
五、BSTR、_bstr_t与CComBSTR

CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。
char *转换到BSTR可以这样: BSTR
b=_com_util::ConvertStringToBSTR("数据");///使用前需要加上头文件comutil.h
反之可以使用char *p=_com_util::ConvertBSTRToString(b);

六、VARIANT 、_variant_t 与 COleVariant

VARIANT的结构可以参考头文件VC98/Include/OAIDL.H中关于结构体tagVARIANT的定义。
对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:
VARIANT va;
int a=2001;
va.vt=VT_I4;///指明整型数据
va.lVal=a; ///赋值
对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR*
pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:
unsigned char bVal; VT_UI1
short iVal; VT_I2
long lVal; VT_I4
float fltVal; VT_R4
double dblVal; VT_R8
VARIANT_BOOL boolVal; VT_BOOL
SCODE scode; VT_ERROR
CY cyVal; VT_CY
DATE date; VT_DATE
BSTR bstrVal; VT_BSTR
IUnknown FAR* punkVal; VT_UNKNOWN
IDispatch FAR* pdispVal; VT_DISPATCH
SAFEARRAY FAR* parray; VT_ARRAY|*
unsigned char FAR* pbVal; VT_BYREF|VT_UI1
short FAR* piVal; VT_BYREF|VT_I2
long FAR* plVal; VT_BYREF|VT_I4
float FAR* pfltVal; VT_BYREF|VT_R4
double FAR* pdblVal; VT_BYREF|VT_R8
VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL
SCODE FAR* pscode; VT_BYREF|VT_ERROR
CY FAR* pcyVal; VT_BYREF|VT_CY
DATE FAR* pdate; VT_BYREF|VT_DATE
BSTR FAR* pbstrVal; VT_BYREF|VT_BSTR
IUnknown FAR* FAR* ppunkVal; VT_BYREF|VT_UNKNOWN
IDispatch FAR* FAR* ppdispVal; VT_BYREF|VT_DISPATCH
SAFEARRAY FAR* FAR* pparray; VT_ARRAY|*
VARIANT FAR* pvarVal; VT_BYREF|VT_VARIANT
void FAR* byref; VT_BYREF

_variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。
例如:
long l=222;
ing i=100;
_variant_t lVal(l);
lVal = (long)i;

COleVariant的使用与_variant_t的方法基本一样,请参考如下例子:
COleVariant v3 = "字符串", v4 = (long)1999;
CString str =(BSTR)v3.pbstrVal;
long i = v4.lVal;

七、其它
对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:
LPARAM lParam;
WORD loValue = LOWORD(lParam);///取低16位
WORD hiValue = HIWORD(lParam);///取高16位
对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE),例如:
WORD wValue;
BYTE loValue = LOBYTE(wValue);///取低8位
BYTE hiValue = HIBYTE(wValue);///取高8位
17:42 添加评论 固定链接 引用通告 (0) 记录它 WINDOWS程序设计
固定链接http://zheat.spaces.live.com/blog/cns!C751553AC403D5B7!177.entry
添加评论3月28日
VC函数类型
字符类型


标识符 实际类型 意义
CHAR char 8位Windows(ANSI)字符。
CCHAR char 8位Windows(ANSI)字符。
PSZ char* 一个以"NULL"结束的Windows字符串的指针
PCHAR CHAR* 一个CHAR型指针
PSTR CHAR* 一个以"NULL"结尾的8位Windows(ANSI)字符串指针
LPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
NPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
PCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
LPCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
WCHAR wchar_t 16位Unicode字符
PWCH WCHAR* 一个WCHAR型指针
PWCHAR WCHAR* 一个WCHAR型指针
PWSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
LPWSTR WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串指针
NWPSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
PCWCH CONST WCHAR* 一个WCHAR型常量指针
LPCWCH CONST WCHAR FAR* 一个WCHAR型常量指针
PCWSTR CONST WCHAR* 一个以"NULL"结束的16位Unicode字符串常量指针
LPCWSTR CONST WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串常量指针
TCHAR WCHAR(或char) 兼容型字符(Unicode中为WCHAR型,Windows中为CHAR型)
PTCHAR WCHAR*(或char) 一个TCHAR型指针
PTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PCTSTR PCWSTR(或PCSTR) Unicode中为PCWSTR型,Windows中为PCSTR型
LPCTSTR LPCWSTR(或LPCSTR) Unicode中为LPCWSTR型,Windows中为LPCSTR型
UCHAR unsigned char 无符号字符型
PUCHAR UCHAR* 一个UCHAR型指针
BSTR OLECHAR* 32位字符指针(不推荐使用)
OLECHAR wchar_t Unicode字符类型(用于对象链接与嵌入的数据类型,如嵌入Word文档)
LPOLESTR OLECHAR* 一个OLECHAR型指针
LPCOLESTR const OLECHAR* 指向OLECHAR类型的字符串常量指针

数值类


标识符 实际类型 意义
BYTE unsigned char 8位无符号整数
PBYTE BYTE near* 一个BYTE型指针
LPBYTE BYTE far* 一个BYTE型指针
TBYTE WCHAR(或unsigned char) Unicode中为WCHAR型,Windows中为unsigned char型
PTBYTE WCHAR*(或unsigned char*) 一个TBYTE型指针
BOOL int 布尔变量,其值为(TRUE或FALSE)
PBOOL BOOL near* 一个BOOL型指针
LPBOOL BOOL far* 一个BOOL型指针
BOOLEAN BYTE 布尔变量,其值为(TRUE或FALSE)
PBOOLEAN BOOLEAN* 一个BOOLEAN型指针
SHORT short 16位短整数(有符号)
PSHORT SHORT* 一个SHORT型指针
USHORT unsigned short 无符号短整型
PUSHORT USHORT* 一个USHORT型指针
INT int 32位符号整数
INT32 32位符号整数
INT64 64位符号整数
INT_PTR Signed integral type for pointer precision.Use when casting a
pointer to an integer to perform pointer arithmetic.
PINT INT near* 一个INT型指针
LPINT INT far* 一个INT型指针
UINT unsigned int 无符号的整型
UINT32 无符号的INT32型
UINT64 无符号的INT64型
UINT_PTR 无符号的INT_PTR型
PUINT UINT* 一个UINT型指针
LONG long 32位符号整数
LONG32 32位符号整数
LONG64 64位符号整数
LONGLONG __int64(或double) 64位符号整数
LONG_PTR Signed long type for pointer precision.Use when casting a pointer
to a long to perform pointer arithmetic.
PLONG LONG near* 一个LONG型指针
LPLONG LONG far* 一个LONG型指针
PLONGLONG LONGLONG* 一个LONGLONG型指针
ULONG unsigned long 无符号的LONG型
ULONG32 无符号的LONG32型
ULONG64 无符号的LONG64型
ULONGLONG unsigned __int64(或double) 64位无符号整型
ULONG_PTR 无符号的LONG_PTR型
PULONG ULONG* 一个ULONG型指针
PULONGLONG ULONGLONG* 一个ULONGLONG型指针
WORD unsigned short 16位无符号整型
PWORD WORD near* 一个WORD型指针
LPWORD WORD far* 一个WORD型指针
DWORD unsigned long 32位无符号整数
DWORD32 32位无符号整型
DWORD64 64位无符号整型
DWORD_PTR Unsigned long type for pointer precision.Use when casting a
pointer to a long type to perform pointer arithmetic.(Also commonly used
for general 32-bit parameters that have been extended to 64 bits in 64-bit
Windows.
PDWORD DWORD near* 一个DWORD型指针
LPDWORD DWORD far* 一个DWORD型指针
FLOAT float 浮点变量
PFLOAT FLOAT near* 一个FLOAT型指针

句柄类


标识符 实际类型 意义
HANDLE void* 对象句柄(32位无符号整数)
PHANDLE HANDLE NEAR* 一个HANDLE型指针
SPHANDLE HANDLE NEAR* 一个HANDLE型指针
LPHANDLE HANDLE FAR* 一个HANDLE型指针
GLOBALHANDLE HANDLE 一个全局句柄
HDC HANDLE 设备描述表(DC)句柄
HBITMAP HANDLE 位图句柄
HBRUSH HANDLE 画刷句柄
HICON HANDLE 图标句柄
HCURSOR HICON 光标句柄
HPALETTE HANDLE 调色板句柄
HPEN HANDLE 画笔句柄
HCONV 动态数据交换(DDE)会话句柄
HACCEL HANDLE 加速键表句柄
HCONVLIST DDE会话列表句柄
HDDEDATA DDE数据句柄
HDESK HANDLE 桌面句柄
HDLG 对话框句柄
HDROP 一个internal drop structure句柄。
HDWP 延期窗口位置结构句柄
HENHMETAFILE HANDLE 增强图元文件句柄
HFILE int或short 文件句柄,用于函数OpenFile,不是CreateFile
HFONT HANDLE 字体句柄
HGDIOBJ HANDLE(void NEAR*) GDI对象句柄
HGLOBAL HANDLE 全局内存块句柄
HHOOK HANDLE 钩子句柄
HIMAGELIST 映像列表句柄
HIMC 输入描述表句柄
HINSTANCE HANDLE 实例句柄(32位无符号整数)
HKEY 登记关键字句柄
HKL HANDLE Input locale identifier.
HLOCAL HANDLE 局部内存块句柄
HMEMU 菜单句柄
HMETAFILE HANDLE 图元文件句柄
HMIDIIN MIDI输入文件句柄(MIDI:乐器的数字化接口)
HMIDIOUT MIDI输出文件句柄(MIDI:乐器的数字化接口)
HMMIO 文件句柄
HMODULE HINSTANCE 一个程序模块的句柄。其值为该模块的启始地址。
HMONITOR HANDLE 显示监视器句柄
HRGN HANDLE 域句柄
HRSRC HANDLE 资源句柄
HSZ DDE字符串句柄
HWAVEIN 波形输入文件句柄
HWAVEOUT 波形输出文件句柄
LPHWAVEIN 一个HWAVEIN型指针
LPHWAVEOUT 一个WAVEOUT型指针
HWINSTA HANDLE 工作站句柄
HWND HANDLE 窗口句柄(32位无符号整数)
LOCALHANDLE HANDLE
SC_HANDLE 服务控制管理数据库(service control manager database)句柄
SC_LOCK 绑定服务控制管理数据库(service control manager database)句柄
SERVICE_STATUS_HANDLE 服务状态值句柄

函数指针类


标识符 意义
MFENUMPROC 该回调函数枚举元文件记录
ENUMFENUMPROC 该回调函数枚举增强的元文件记录
ENUMRESLANGPROC 该回调函数枚举资源语言。
ENUMRESNAMEPROC 该回调函数枚举资源名称。
ENUMRESTYPEPROC 该回调函数枚举资源类型。
FONTENUMPROC 该回调函数枚举字体
GOBJENUMPROC 该回调函数枚举图形设备接口(GDI)对象
HOOKPROC 钩子过程函数指针
LPCCHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPCFHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPFRHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPOFNHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPPRINTHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPSETUPHOOKPROC 指向一个应用程序定义的钩子函数的指针
FARPROC 指向一个长回调函数的指针
DLGPROC 指向一个对话框过程的指针
LINEDDAPROC 指向一个回调函数的指针,该回调函数处理行坐标
LOHANDLER_FUNCTION 指向一个处理程序函数的指针
PROPENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口特征
PFNCALLBACK 指向一个回调函数的指针
PHANDLER_ROUTINE 指向一个处理程序的指针
TIMERPROC 指向一个应用程序定义的定时器回调函数的指针
WNDENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口
WNDPROC 32-bit,指向一个应用程序定义的窗口过程的指针
YIELDPROC 指向一个输出回调函数的指针

其他类

标识符 实际类型 意义
ATOM WORD 原子(原子表中的一个字符串的参考)
CALLBACK 回调函数的定义标识
LPRESULT 作为窗口函数或callback函数的返回值(32位数值)
LRESULT LONG 消息处理的符号结果
COLORREF DWORD 由红、绿、蓝(RGB)组成的彩色值(32位数值)
WINAPI APIENTRY 系统函数调用协议标识。
WPARAM UINT 消息参数
LPARAM LONG 消息参数,32-bit数值,作为窗口函数或callback函数的一个参数
CRITICAL_SECTION 临界段对象。
LPCRITICAL_SECTION 一个临界段对象的指针(CRITICAL_SECTION)
CTRYID 国名标识符。
FMORDER 32位字体映射值的数组
LANGID WORD 语言标识符
LCID DWORD 所在国标识符
PLCID PDWORD 一个LCID型指针
LCTYPE 所在国类型
LPCOLORREF DWORD* 一个COLORREF型指针
MCIDEVICEID 媒体控制接口(MCI)设备标识符
MMRESULT 多媒体消息的处理结果
PCRITICAL_SECTION 指向一个临界段对象(CRITICAL_SECTION)的指针
PHKEY 一个HKEY型指针
POINTER_32 32位指针。在32位系统中,是一个普通指针。在64位系统中,是一个去除了高字节的64位指针。
POINTER_64 64位指针。在64位系统中,是一个普通指针。在32位系统中,是被扩展了符号的32位指针。
PSID PVOID 指向一个加密标识符(SID)的指针
REGSAM 登记关键字的加密掩码
SIZE_T unsigned int The maximum number of bytes to which a pointer can
point.Use for a count that must span the full range of a pointer.
SSIZE_T 带符号的SIZE_T型
UNSIGNED Unsigned attribute.

结构类


标识符 实际类型 意义
LPCRECT const RECT FAR* RECT结构常量指针(32位)
LPCRECTL const RECTL FAR* RECTL结构常量指针(32位)
LUID LUID结构。局部唯一的标识符(Locally unique identifier)
PLUID LUID* 一个LUID型指针

空类

标识符 实际类型 意义
CONST const 常量
VOID void 任何类型
PVOID void near* 一个指向任何类型的指针
LPVOID void far* 一个void型远指针
LPCVOID CONST void far* 一个指向任何类型的常量指针
=======================================================================================================================
C字符串函数(一)
bcmp


原型:extern int bcmp(const void *s1, const void *s2, int n);

用法:#include <string.h>

功能:比较字符串s1和s2的前n个字节是否相等

说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。

举例:

// bcmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Golden Global View";
char *s2="Golden global view";;

clrscr(); // clear screen
if(!bcmp(s1,s2,7))
printf("s1 equal to s2 in first 7 bytes");
else
printf("s1 not equal to s2 in first 7 bytes");

getchar();
clrscr();
if(!bcmp(s1,s2,12))
printf("s1 equal to s2 in first 12 bytes");
else
printf("s1 not equal to s2 in first 12 bytes");

getchar();
return 0;
}bcopy 原型:extern void bcopy(const void *src, void *dest, int n);

用法:#include <string.h>

功能:将字符串src的前n个字节复制到dest中

说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。

举例:

// bcopy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20];

clrscr(); // clear screen
bcopy(s,d,6);
printf("s: %s/n",s);
printf("d: %s/n",d);

getchar();
clrscr();
s[13]=0;
bcopy(s+7,d,11); // bcopy ignore null in string
printf("%s/n",s+7);
for(i=0;i<11;i++)
putchar(d[i]);

getchar();
return 0;
}
bzero 原型:extern void bzero(void *s, int n);

用法:#include <string.h>

功能:置字节字符串s的前n个字节为零。

说明:bzero无返回值。

举例:

// bzero.c

#include <syslib.h>
#include <string.h>

main()
{
struct
{
int a;
char s[5];
float f;
} tt;

char s[20];

bzero(&tt,sizeof(tt)); // struct initialization to zero
bzero(s,20);

clrscr();
printf("Initail Success");

getchar();
return 0;
}
memccpy 原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。

说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。

举例:

// memccpy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20],*p;

clrscr();

p=memccpy(d,s,'x',strlen(s));
if(p)
{
*p='/0'; // MUST Do This
printf("Char found: %s./n",d);
}
else
printf("Char not found./n");


getchar();
return 0;
}
memchr 原型:extern void *memchr(void *buf, char ch, unsigned count);

用法:#include <string.h>

功能:从buf所指内存区域的前count个字节查找字符ch。

说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。

举例:

// memchr.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Hello, Programmers!";
char *p;

clrscr();

p=memchr(s,'P',strlen(s));
if(p)
printf("%s",p);
else
printf("Not Found!");

getchar();
return 0;
}
memcmp 原型:extern int memcmp(void *buf1, void *buf2, unsigned int count);

用法:#include <string.h>

功能:比较内存区域buf1和buf2的前count个字节。

说明:
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0

举例:

// memcmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=memcmp(s1,s2,strlen(s1));
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
return 0;
}
memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

举例:

// memcpy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20];

clrscr();

memcpy(d,s,strlen(s));
d[strlen(s)]=0;
printf("%s",d);

getchar();
return 0;
}
memicmp 原型:extern int memicmp(void *buf1, void *buf2, unsigned int count);

用法:#include <string.h>

功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。

说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0

举例:

// memicmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=memicmp(s1,s2,strlen(s1));
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
return 0;
}

memmove 原型:extern void *memmove(void *dest, const void *src, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。

举例:


// memmove.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

memmove(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);

getchar();
return 0;
}
memset 原型:extern void *memset(void *buffer, int c, int count);

用法:#include <string.h>

功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。

举例:


// memset.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

memset(s,'G',6);
printf("%s",s);

getchar();
return 0;
}
movmem 原型:extern void movmem(void *src, void *dest, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域。

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。

举例:


// movmem.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

movmem(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);

getchar();
return 0;
}
setmem 原型:extern void setmem(void *buf, unsigned int count, char ch);

用法:#include <string.h>

功能:把buf所指内存区域前count个字节设置成字符ch。

说明:返回指向buf的指针。

举例:


// setmem.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

setmem(s,6,'G');
printf("%s",s);

getchar();
return 0;
}
stpcpy 原型:extern char *stpcpy(char *dest,char *src);

用法:#include <string.h>

功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest结尾处字符(NULL)的指针。

举例:


// stpcpy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20];

clrscr();

stpcpy(d,s);
printf("%s",d);

getchar();
return 0;
}
strcat 原型:extern char *strcat(char *dest,char *src);

用法:#include <string.h>

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'/0')并添加'/0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

举例:


// strcat.c

#include <syslib.h>
#include <string.h>

main()
{
char d[20]="Golden Global";
char *s=" View";

clrscr();

strcat(d,s);
printf("%s",d);

getchar();
return 0;
}
strchr 原型:extern char *strchr(char *s,char c);

用法:#include <string.h>

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

举例:


// strchr.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char *p;

clrscr();

strchr(s,'V');
if(p)
printf("%s",p);
else
printf("Not Found!");

getchar();
return 0;
}
strcmp 原型:extern int strcmp(char *s1,char * s2);

用法:#include <string.h>

功能:比较字符串s1和s2。

说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0

举例:

// strcmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
return 0;
}
stricmp,strcmpi 原型:extern int stricmp(char *s1,char * s2);

用法:#include <string.h>

功能:比较字符串s1和s2,但不区分字母的大小写。

说明:strcmpi是到stricmp的宏定义,实际未提供此函数。
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0

举例:

// stricmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=stricmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
return 0;
}
strcpy 原型:extern char *strcpy(char *dest,char *src);

用法:#include <string.h>

功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

举例:


// strcpy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20];

clrscr();

strcpy(d,s);
printf("%s",d);

getchar();
return 0;
}
strcspn 原型:extern int strcspn(char *s1,char *s2);

用法:#include <string.h>

功能:在字符串s1中搜寻s2中所出现的字符。

说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。

举例:


// strcspn.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char *r="new";
int n;

clrscr();

n=strcspn(s,r);
printf("The first char both in s1 and s2 is: %c",s[n]);

getchar();
return 0;
}strdup 原型:extern char *strdup(char *s);

用法:#include <string.h>

功能:复制字符串s

说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。

举例:


// strdup.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char *d;

clrscr();

d=strdup(s);
printf("%s",d);

getchar();
return 0;
}strlen 原型:extern int strlen(char *s);

用法:#include <string.h>

功能:计算字符串s的长度

说明:返回s的长度,不包括结束符NULL。

举例:


// strlen.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

printf("%s has %d chars",s,strlen(s));

getchar();
return 0;
}strlwr 原型:extern char *strlwr(char *s);

用法:#include <string.h>

功能:将字符串s转换为小写形式

说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。

举例:


// strlwr.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Copywrite 1999-2000 GGV Technologies";

clrscr();

printf("%s",strlwr(s));

getchar();
return 0;
} 原型:extern char *strncat(char *dest,char *src,int n);

用法:#include <string.h>

功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'/0')并添加'/0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

举例:


// strncat.c

#include <syslib.h>
#include <string.h>

main()
{
char d[20]="Golden Global";
char *s=" View WinIDE Library";

clrscr();

strncat(d,s,5);
printf("%s",d);

getchar();
return 0;
}strncmp 原型:extern int strcmp(char *s1,char * s2,int n);

用法:#include <string.h>

功能:比较字符串s1和s2的前n个字符。

说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0

举例:

// strncmp.c

#include <syslib.h>
#include <string.h>

main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;

clrscr();

r=strncmp(s1,s2,6);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");

getchar();
clrscr();

r=strncmp(s1,s2,10);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else


本文地址:http://www.45fan.com/dnjc/67223.html
Tags: 数据 类型 字符
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部