VC中字符处理

[cpp]  view plain copy
  1. /*TCHAR; 
  2. LPTSTR; 
  3. LPCTSTR;*/  
  4.   
  5. TCHAR szBuf1[100]={0};  
  6. TCHAR szBuf2[100]={0};  
  7.   
  8. //获得字符串长度  
  9. //SIZE_T nLen=strlen(szBuf1);  
  10. SIZE_T nLen=_tcslen(szBuf1);    //如果在UNICODE下,"中国"此函数返回2,所以如果要得到其字节数,要*sizeof(TCHAR)  
  11.   
  12. //拼接字符串  
  13. //strcat(szBuf1,szBuf2);  
  14. _tcscat_s(szBuf1,szBuf2);  
  15.   
  16. //拼接n个字符串  
  17. //strcat(szBuf1,szBuf2,10);  
  18. _tcsncat_s(szBuf1,szBuf2,10);  
  19.   
  20. //获得输入  
  21. //gets(szBuf1);  
  22. _getts_s(szBuf1);  
  23.   
  24. //数字转换为字符  
  25. int n=100;  
  26. //itoa(n,szBuf1,10);  
  27. _itot_s(n,szBuf1,10);  
  28.   
  29. //字符转换为数字  
  30. int a=_tstoi(szBuf1);  
  31. double f=_tstof(szBuf1);  
  32.   
  33. //格式化字符串  
  34. //sprintf(szBuf1,"%s%d","123",123);  
  35. _stprintf_s(szBuf1,100,_T("%s%d"),_T("123"),123);  
  36.   
  37. //查找字符出现的位置  
  38. //strchr(szBuf1,'A');  
  39. _tcschr(szBuf1,'A');  
  40.   
  41. //比较两个字符串  
  42. //strcmp(szBuf1,szBuf2);  
  43. _tcscmp(szBuf1,szBuf2);  
  44.   
  45. //根据语言集比较字符串  
  46. //strcoll(szBuf1,szBuf2);  
  47. _tcscoll(szBuf1,szBuf2);  
  48.   
  49. //字符拷贝  
  50. //strcpy(szBuf1,szBuf2);  
  51. _tcscpy_s(szBuf1,szBuf2);  
  52.   
  53. //将时间格式化到字符串  
  54. time_t tm;  
  55. //ctime(&tm);  
  56. _tctime_s(szBuf1,100,&tm);  
  57.   
  58. //打印字符串  
  59. //printf("123");  
  60. _tprintf_s(_T("123\r\n"));  
  61.   
  62. //通过参数列表格式化字符串  
  63. //vsprintf(szBuf1,"%s%d",p);  
  64. _vstprintf_s(szBuf1,100,_T("%s%d"),p);  
  65.   
  66. //查找字串,返回值为找到的字串的指针,如果找不到,则返回NULL  
  67. //strstr(str1,strFind);  
  68. _tcsstr(str1,strFind);  
  69.   
  70. //输出字符  
  71. //printf("------------");  
  72. _tprintf_s(_T("-------------\r\n"));  

UNICODE下写文件要在文件头写入0xFEFF,表示打开方式为UNICODE,这样不会产生乱码 

 

1:Unicode一般指UTF-16,占两个字节

2:UTF-8有些字符占1个字节,有些2个字节,有些3个字节,有些4个字节;UTF-32全都4个字节

3:char c='A';char szBuf[100]="string";

4:c/c++编译器定义了wchar_t类型,占2个字节wchar_t c=L'A';wchar_t szBuf[100]=L"string";

5:windows定义了//1字节typedef char    CHAR;typedef CHAR* PCHAR;typedef CHAR* PSTR;typedef CONST CHAR* PCSTR;//2字节typedef wchar_t WCHAR;typedef WCHAR* PWCHAR;typedef WCHAR* PWSTR;typedef CONST WCHAR* PCWSTR;

6:兼容字符处理字符TCHAR;指针PTCHAR,PTSTR;const指针PCTSTR;使用方式为:TCHAR c=TEXT('A');TCHAR szBuf[100]=TEXT("string");

7:Windows内部用Unicode,如果传入ANSI字符串,会进行一次转换,这回带来性能开销

8:API函数中,后缀W代表wide,也就是Unicode,后缀A代表ANSI

9:C运行库strlen对应wcslen,两者兼容版本是_tcslen

10:strcpy对应wcscpy,者兼容版本是_tcscpy

11安全字符串函数,在每个者兼容版本是后面加_s,如_tcscpy_s

[cpp]  view plain copy
  1. #include "stdafx.h"  
  2. #include "Windows.h"  
  3. #include "StrSafe.h"  
  4. #include "stdlib.h"  
  5. int _tmain(int argc, _TCHAR* argv[])  
  6. {  
  7.     TCHAR szDes[3]=TEXT("");  
  8.     TCHAR szRes[4]=TEXT("123");  
  9.     _tcscpy_s(szDes,_countof(szDes),szRes);  
  10.     return 0;  
  11. }  

_s函数会返回S_OK表示调用成功,但在返回失败之前,如果调用错误,会弹出对话框

检查错误的时候,Debug版会显示错误对话框,Release版本会直接终止程序

可以添加一个函数定义产生错误的回调

调用函数_set_invalid_parameter_handler注册自定义函数,自定义函数原型参考InvalidParamenterHandler();

如果要禁止对话框的出现,在程序开头定义_CrtSetReportMode(_CRT_ASSERT,0);

 

 

void *memchr( const void *buffer, int ch, size_t count );
功能:函数在buffer指向的数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。

int memcmp( const void *buffer1, const void *buffer2, size_t count );
功能:函数比较buffer1 和 buffer2的前count 个字符。

void *memcpy( void *to, const void *from, size_t count );
功能:函数从from中复制count 个字符到to中,并返回to指针。 如果to 和 from 重叠,则函数行为不确定。

 http://msdn.microsoft.com/en-us/library/tsbaswba(VS.80).aspx

兼容版本SBCS(单字节)MBCS(单字节和多字节)_UNICODE

_cgetts

_cgets

_cgets

_cgetws

_cgetts_s

_cgets_s

_cgets_s

_cgetws_s

_cputts

_cputs

_cputs

_cputws

_fgettc

fgetc

fgetc

fgetwc

_fgettchar

_fgetchar

_fgetchar

_fgetwchar

_fgetts

fgets

fgets

fgetws

_fputtc

fputc

fputc

fputwc

_fputtchar

_fputchar

_fputchar

_fputwchar

_fputts

fputs

fputs

fputws

_ftprintf

fprintf

fprintf

fwprintf

_ftprintf_s

fprintf_s

fprintf_s

fwprintf_s

_ftscanf

fscanf

fscanf

fwscanf

_ftscanf_s

fscanf_s

fscanf_s

fwscanf_s

_gettc

getc

getc

getwc

_gettch

_getch

_getch

_getwch

_gettchar

getchar

getchar

getwchar

_gettche

_getche

_getche

_getwche

_getts

gets

gets

getws

_getts_s

gets_s

gets_s

getws_s

_istalnum

isalnum

_ismbcalnum

iswalnum

_istalpha

isalpha

_ismbcalpha

iswalpha

_istascii

isascii

isascii

iswascii

_istcntrl

iscntrl

iscntrl

iswcntrl

_istdigit

isdigit

_ismbcdigit

iswdigit

_istgraph

isgraph

_ismbcgraph

iswgraph

_istlead

Always returns false

_ismbblead

Always returns false

_istleadbyte

Always returns false

isleadbyte

Always returns false

_istlegal

Always returns true

_ismbclegal

Always returns true

_istlower

islower

_ismbclower

iswlower

_istprint

isprint

_ismbcprint

iswprint

_istpunct

ispunct

_ismbcpunct

iswpunct

_istspace

isspace

_ismbcspace

iswspace

_istupper

isupper

_ismbcupper

iswupper

_istxdigit

isxdigit

isxdigit

iswxdigit

_itot

_itoa

_itoa

_itow

_itot_s

_itoa_s

_itoa_s

_itow_s

_ltot

_ltoa

_ltoa

_ltow

_ltot_s

_ltoa_s

_ltoa_s

_ltow_s

_puttc

putc

putc

putwc

_puttch

_putch

_putch

_putwch

_puttchar

putchar

putchar

putwchar

_putts

puts

puts

_putws

_sctprintf

_scprintf

_scprintf

_scwprintf

_sntprintf

_snprintf

_snprintf

_snwprintf

_sntprintf_s

_snprintf_s

_snprintf_s

_snwprintf_s

_sntscanf

_snscanf

_snscanf

_snwscanf

_sntscanf_s

_snscanf_s

_snscanf_s

_snwscanf_s

_stprintf

sprintf

sprintf

swprintf

_stprintf_s

sprintf_s

sprintf_s

swprintf_s

_stscanf

sscanf

sscanf

swscanf

_stscanf_s

sscanf_s

sscanf_s

swscanf_s

_taccess

_access

_access

_waccess

_taccess_s

_access_s

_access_s

_waccess_s

_tasctime

asctime

asctime

_wasctime

_tasctime_s

asctime_s

asctime_s

_wasctime_s

_tccmp

Maps to macro or inline function

_mbsncmp

Maps to macro or inline function

_tccpy

Maps to macro or inline function

_mbccpy

Maps to macro or inline function

_tccpy_s

strcpy_s

_mbccpy_s

wcscpy_s

_tchdir

_chdir

_chdir

_wchdir

_tclen

Maps to macro or inline function

_mbclen

Maps to macro or inline function

_tchmod

_chmod

_chmod

_wchmod

_tcprintf

_cprintf

_cprintf

_cwprintf

_tcprintf_s

_cprintf_s

_cprintf_s

_cwprintf_s

_tcreat

_creat

_creat

_wcreat

_tcscanf

_cscanf

_cscanf

_cwscanf

_tcscanf_s

_cscanf_s

_cscanf_s

_cwscanf_s

_tcscat

strcat

_mbscat

wcscat

_tcscat_s

strcat_s

_mbscat_s

wcscat_s

_tcschr

strchr

_mbschr

wcschr

_tcsclen

strlen

_mbslen

wcslen

_tcsclen_s

strlen_s

_mbslen_s

wcslen_s

_tcscmp

strcmp

_mbscmp

wcscmp

_tcscoll

strcoll

_mbscoll

wcscoll

_tcscpy

strcpy

_mbscpy

wcscpy

_tcscpy_s

strcpy_s

_mbscpy_s

wcscpy_s

_tcscspn

strcspn

_mbscspn

wcscspn

_tcsdec

_strdec

_mbsdec

_wcsdec

_tcsdup

_strdup

_mbsdup

_wcsdup

_tcserror

strerror

strerror

_wcserror

_tcserror_s

strerror_s

strerror_s

_wcserror_s

_tcsftime

strftime

strftime

wcsftime

_tcsicmp

_stricmp

_mbsicmp

_wcsicmp

_tcsicoll

_stricoll

_mbsicoll

_wcsicoll

_tcsinc

_strinc

_mbsinc

_wcsinc

_tcslen

strlen

strlen

wcslen

_tcslen_s

strlen_s

strlen_s

wcslen_s

_tcslwr

_strlwr

_mbslwr

_wcslwr

_tcslwr_s

_strlwr_s

_mbslwr_s

_wcslwr_s

_tcsnbcnt

_strncnt

_mbsnbcnt

_wcsncnt

_tcsncat

strncat

_mbsnbcat

wcsncat

_tcsncat_s

strncat_s

_mbsnbcat_s

wcsncat_s

_tcsnccat

strncat

_mbsncat

wcsncat

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsnccmp_s

strncmp_s

_mbsncmp_s

wcsncmp_s

_tcsnccoll

_strncoll

_mbsncoll

_wcsncoll

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsnccnt

_strncnt

_mbsnccnt

_wcsncnt

_tcsnccpy

strncpy

_mbsncpy

wcsncpy

_tcsnccpy_s

strncpy_s

_mbsncpy_s

wcsncpy_s

_tcsncicmp

_strnicmp

_mbsnicmp

_wcsnicmp

_tcsncicoll

_strnicoll

_mbsnicoll

_wcsnicoll

_tcsncpy

strncpy

_mbsnbcpy

wcsncpy

_tcsncpy_s

strncpy_s

_mbsnbcpy_s

wcsncpy_s

_tcsncset

_strnset

_mbsnset

_wcsnset

_tcsnextc

_strnextc

_mbsnextc

_wcsnextc

_tcsnicmp

_strnicmp

_mbsnbicmp

_wcsnicmp

_tcsnicoll

_strnicoll

_mbsnbicoll

_wcsnicoll

_tcsninc

_strninc

_mbsninc

_wcsninc

_tcsnccnt

_strncnt

_mbsnccnt

_wcsncnt

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcspbrk

strpbrk

_mbspbrk

wcspbrk

_tcsspnp

_strspnp

_mbsspnp

_wcsspnp

_tcsrchr

strrchr

_mbsrchr

wcsrchr

_tcsrev

_strrev

_mbsrev

_wcsrev

_tcsset

_strset

_mbsset

_wcsset

_tcsspn

strspn

_mbsspn

wcsspn

_tcsstr

strstr

_mbsstr

wcsstr

_tcstod

strtod

strtod

wcstod

_tcstoi64

_strtoi64

_strtoi64

_wcstoi64

_tcstok

strtok

_mbstok

wcstok

_tcstok_s

strtok_s

_mbstok_s

wcstok_s

_tcstol

strtol

strtol

wcstol

_tcstoui64

_strtoui64

_strtoui64

_wcstoui64

_tcstoul

strtoul

strtoul

wcstoul

_tcsupr

_strupr

_mbsupr

_wcsupr

_tcsupr_s

_strupr_s

_mbsupr_s

_wcsupr_s

_tcsxfrm

strxfrm

strxfrm

wcsxfrm

_tctime

ctime

ctime

_wctime

_tctime_s

ctime_s

ctime_s

_wctime_s

_tctime32

_ctime32

_ctime32

_wctime32

_tctime32_s

_ctime32_s

_ctime32_s

_wctime32_s

_tctime64

_ctime64

_ctime64

_wctime64

_tctime64_s

_ctime64_s

_ctime64_s

_wctime64_s

_texecl

_execl

_execl

_wexecl

_texecle

_execle

_execle

_wexecle

_texeclp

_execlp

_execlp

_wexeclp

_texeclpe

_execlpe

_execlpe

_wexeclpe

_texecv

_execv

_execv

_wexecv

_texecve

_execve

_execve

_wexecve

_texecvp

_execvp

_execvp

_wexecvp

_texecvpe

_execvpe

_execvpe

_wexecvpe

_tfdopen

_fdopen

_fdopen

_wfdopen

_tfindfirst

_findfirst

_findfirst

_wfindfirst

_tfindnext

_findnext

_findnext

_wfindnext

_tfindnext32

_findnext32

_findnext32

_wfindnext32

_tfindnext64

_findnext64

_findnext64

_wfindnext64

_tfindnexti64

_findnexti64

_findnexti64

_wfindnexti64

_tfindnexti6432

_findnexti6432

_findnexti6432

_wfindnexti6432

_tfindnext32i64

_findnext32i64

_findnext32i64

_wfindnext32i64

_tfopen

fopen

fopen

_wfopen

_tfopen_s

fopen_s

fopen_s

_wfopen_s

_tfreopen

freopen

freopen

_wfreopen

_tfreopen_s

freopen_s

freopen_s

_wfreopen_s

_tfsopen

_fsopen

_fsopen

_wfsopen

_tfullpath

_fullpath

_fullpath

_wfullpath

_tgetcwd

_getcwd

_getcwd

_wgetcwd

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

_tgetenv

getenv

getenv

_wgetenv

_tgetenv_s

getenv_s

getenv_s

_wgetenv_s

_tmain

main

main

wmain

_tmakepath

_makepath

_makepath

_wmakepath

_tmakepath_s

_makepath_s

_makepath_s

_wmakepath_s

_tmkdir

_mkdir

_mkdir

_wmkdir

_tmktemp

_mktemp

_mktemp

_wmktemp

_tmktemp_s

_mktemp_s

_mktemp_s

_wmktemp_s

_topen

_open

_open

_wopen

_topen_s

_open_s

_open_s

_wopen_s

_totlower

tolower

_mbctolower

towlower

_totupper

toupper

_mbctoupper

towupper

_tperror

perror

perror

_wperror

_tpopen

_popen

_popen

_wpopen

_tprintf

printf

printf

wprintf

_tprintf_s

printf_s

printf_s

wprintf_s

_tputenv

_putenv

_putenv

_wputenv

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

_tremove

remove

remove

_wremove

_trename

rename

rename

_wrename

_trmdir

_rmdir

_rmdir

_wrmdir

_tsearchenv

_searchenv

_searchenv

_wsearchenv

_tsearchenv_s

_searchenv_s

_searchenv_s

_wsearchenv_s

_tscanf

scanf

scanf

wscanf

_tscanf_s

scanf_s

scanf_s

wscanf_s

_tsetlocale

setlocale

setlocale

_wsetlocale

_tsopen

_sopen

_sopen

_wsopen

_tsopen_s

_sopen_s

_sopen_s

_wsopen_s

_tspawnl

_spawnl

_spawnl

_wspawnl

_tspawnle

_spawnle

_spawnle

_wspawnle

_tspawnlp

_spawnlp

_spawnlp

_wspawnlp

_tspawnlpe

_spawnlpe

_spawnlpe

_wspawnlpe

_tspawnv

_spawnv

_spawnv

_wspawnv

_tspawnve

_spawnve

_spawnve

_wspawnve

_tspawnvp

_spawnvp

_spawnvp

_wspawnvp

_tspawnvpe

_spawnvpe

_spawnvpe

_wspawnvpe

_tsplitpath

_splitpath

_splitpath

_wsplitpath

_tstat

_stat

_stat

_wstat

_tstat32

_stat32

_stat32

_wstat32

_tstati32

_stati32

_stati32

_wstati32

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstof

atof

atof

_wtof

_tstoi

atoi

atoi

_wtoi

_tstoi64

_atoi64

_atoi64

_wtoi64

_tstol

atol

atol

_wtol

_tstrdate

_strdate

_strdate

_wstrdate

_tstrdate_s

_strdate_s

_strdate_s

_wstrdate_s

_tstrtime

_strtime

_strtime

_wstrtime

_tstrtime_s

_strtime_s

_strtime_s

_wstrtime_s

_tsystem

system

system

_wsystem

_ttempnam

_tempnam

_tempnam

_wtempnam

_ttmpnam

tmpnam

tmpnam

_wtmpnam

_ttmpnam_s

tmpnam_s

tmpnam_s

_wtmpnam_s

_ttoi

atoi

atoi

_wtoi

_ttoi64

_atoi64

_atoi64

_wtoi64

_ttol

atol

atol

_wtol

_tunlink

_unlink

_unlink

_wunlink

_tutime

_utime

_utime

_wutime

_tutime32

_utime32

_utime32

_wutime32

_tutime64

_utime64

_utime64

_wutime64

_tWinMain

WinMain

WinMain

wWinMain

_ui64tot

_ui64toa

_ui64toa

_ui64tow

_ui64tot_s

_ui64toa_s

_ui64toa_s

_ui64tow_s

_ultot

_ultoa

_ultoa

_ultow

_ultot_s

_ultoa_s

_ultoa_s

_ultow_s

_ungettc

ungetc

ungetc

ungetwc

_ungettch

_ungetch

_ungetch

_ungetwch

_vftprintf

vfprintf

vfprintf

vfwprintf

_vftprintf_s

vfprintf_s

vfprintf_s

vfwprintf_S

_vsctprintf

_vscprintf

_vscprintf

_vscwprintf

_vsctprintf_s

_vscprintf_s

_vscprintf_s

_vscwprintf_S

_vsntprintf

_vsnprintf

_vsnprintf

_vsnwprintf

_vsntprintf_s

_vsnprintf_s

_vsnprintf_s

_vsnwprintf_s

_vstprintf

vsprintf

vsprintf

vswprintf

_vstprintf_s

vsprintf_s

vsprintf_s

vswprintf_s

_vtprintf

vprintf

vprintf

vwprintf

_vtprintf_s

vprintf_s

vprintf_s

vwprintf_s


转自:
http://blog.csdn.net/mxzy55560593/article/details/6645987
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值