宽字符处理函数函数与普通函数对照表 

字符分类:     宽字符函数普通C函数描述 iswalnum()     isalnum() 测试字符是否为数字或字母 iswalpha()     isalpha() 测试字符是否是字母 iswcntrl()     iscntrl() 测试字符是否是控制符 iswdigit()     isdigit() 测试字符是否为数字 iswgraph()     isgraph() 测试字符是否是可见字符 iswlower()     islower() 测试字符是否是小写字符 iswprint()     isprint() 测试字符是否是可打印字符 iswpunct()     ispunct() 测试字符是否是标点符号 iswspace()     isspace() 测试字符是否是空白符号 iswupper()     isupper() 测试字符是否是大写字符 iswxdigit()     isxdigit()测试字符是否是十六进制的数字 

大小写转换:     宽字符函数    普通C函数描述 towlower()     tolower() 把字符转换为小写 towupper()     toupper() 把字符转换为大写 

字符比较:     宽字符函数普通C函数描述 wcscoll()     strcoll() 比较字符串 

日期和时间转换: 宽字符函数描述 strftime()     根据指定的字符串格式和locale设置格式化日期和时间 wcsftime()     根据指定的字符串格式和locale设置格式化日期和时间, 并返回宽字符串 strptime()     根据指定格式把字符串转换为时间值, 是strftime的反过程 

打印和扫描字符串: 宽字符函数描述 fprintf()/fwprintf()     使用vararg参量的格式化输出 fscanf()/fwscanf()         格式化读入 printf()             使用vararg参量的格式化输出到标准输出 scanf()             从标准输入的格式化读入 sprintf()/swprintf()     根据vararg参量表格式化成字符串 sscanf()             以字符串作格式化读入 vfprintf()/vfwprintf()     使用stdarg参量表格式化输出到文件 vprintf()             使用stdarg参量表格式化输出到标准输出 vsprintf()/vswprintf()     格式化stdarg参量表并写到字符串 

数字转换: 宽字符函数    普通C函数描述 wcstod()     strtod()  把宽字符的初始部分转换为双精度浮点数 wcstol()     strtol()  把宽字符的初始部分转换为长整数 wcstoul()     strtoul() 把宽字符的初始部分转换为无符号长整数 

多字节字符和宽字符转换及操作: 宽字符函数描述 mblen()         根据locale的设置确定字符的字节数 mbstowcs()         把多字节字符串转换为宽字符串 mbtowc()/btowc()    把多字节字符转换为宽字符 wcstombs()         把宽字符串转换为多字节字符串 wctomb()/wctob()     把宽字符转换为多字节字符 

输入和输出: 宽字符函数    普通C函数描述 fgetwc()     fgetc()     从流中读入一个字符并转换为宽字符 fgetws()     fgets()     从流中读入一个字符串并转换为宽字符串 fputwc()     fputc()     把宽字符转换为多字节字符并且输出到标准输出 fputws()     fputs()     把宽字符串转换为多字节字符并且输出到标准输出串 getwc()     getc()     从标准输入中读取字符, 并且转换为宽字符 getwchar()     getchar()     从标准输入中读取字符, 并且转换为宽字符 None         gets()     使用fgetws() putwc()     putc()     把宽字符转换成多字节字符并且写到标准输出 putwchar()     putchar()     把宽字符转换成多字节字符并且写到标准输出 None         puts()     使用fputws() ungetwc()     ungetc()     把一个宽字符放回到输入流中 

字符串操作: 宽字符函数        普通C函数描述 wcscat()         strcat()     把一个字符串接到另一个字符串的尾部 wcsncat()         strncat()     类似于wcscat(), 而且指定粘接字符串的粘接长度. wcschr()         strchr()     查找子字符串的第一个位置 wcsrchr()         strrchr()     从尾部开始查找子字符串出现的第一个位置 wcspbrk()         strpbrk()     从一字符字符串中查找另一字符串中任何一个字符第一次出现的位置 wcswcs()/wcsstr()     strchr()     在一字符串中查找另一字符串第一次出现的位置 wcscspn()         strcspn()     返回不包含第二个字符串的的初始数目 wcsspn()         strspn()     返回包含第二个字符串的初始数目 wcscpy()         strcpy()     拷贝字符串 wcsncpy()         strncpy()     类似于wcscpy(), 同时指定拷贝的数目 wcscmp()         strcmp()     比较两个宽字符串 wcsncmp()         strncmp()     类似于wcscmp(), 还要指定比较字符字符串的数目 wcslen()         strlen()     获得宽字符串的数目 wcstok()         strtok()     根据标示符把宽字符串分解成一系列字符串 wcswidth()         None         获得宽字符串的宽度 wcwidth()         None         获得宽字符的宽度 

另外还有对应于memory操作的 wmemcpy(), wmemchr(), wmemcmp(), wmemmove(), wmemset().

另:

函数名: stpcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char string[10];    char *str1 = "abcdefghi"; 

   stpcpy(string, str1);    printf("%s\n", string);    return 0; } 

函数名: strcat 功  能: 字符串拼接函数 用  法: char *strcat(char *destin, char *source); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char destination[25];    char *blank = " ", *c = "C++", *Borland = "Borland"; 

   strcpy(destination, Borland);    strcat(destination, blank);    strcat(destination, c); 

   printf("%s\n", destination);    return 0; } 

函数名: strchr 功  能: 在一个串中查找给定字符的第一个匹配之处\ 用  法: char *strchr(char *str, char c); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void)  {     char string[15];     char *ptr, c = 'r'; 

    strcpy(string, "This is a string");     ptr = strchr(string, c);     if (ptr)        printf("The character %c is at position: %d\n", c, ptr-string);     else        printf("The character was not found\n");     return 0;  } 

函数名: strcmp 功  能: 串比较 用  法: int strcmp(char *str1, char *str2); 看Asic码,str1>str2,返回值 > 0;两串相等,返回0程序例: 

#include <string.h> #include <stdio.h> 

int main(void)  {     char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";     int ptr; 

    ptr = strcmp(buf2, buf1);     if (ptr > 0)        printf("buffer 2 is greater than buffer 1\n");     else        printf("buffer 2 is less than buffer 1\n"); 

    ptr = strcmp(buf2, buf3);     if (ptr > 0)        printf("buffer 2 is greater than buffer 3\n");     else        printf("buffer 2 is less than buffer 3\n"); 

    return 0;  } 

函数名: strncmpi 功  能: 将一个串中的一部分与另一个串比较, 不管大小写 用  法: int strncmpi(char *str1, char *str2, unsigned maxlen); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *buf1 = "BBB", *buf2 = "bbb";    int ptr; 

   ptr = strcmpi(buf2, buf1); 

   if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n"); 

   if (ptr < 0)       printf("buffer 2 is less than buffer 1\n"); 

   if (ptr == 0)       printf("buffer 2 equals buffer 1\n"); 

   return 0; } 

函数名: strcpy 功  能: 串拷贝 用  法: char *strcpy(char *str1, char *str2); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void)  {     char string[10];     char *str1 = "abcdefghi"; 

    strcpy(string, str1);     printf("%s\n", string);     return 0;  } 

函数名: strcspn 功  能: 在串中查找第一个给定字符集内容的段 用  法: int strcspn(char *str1, char *str2); 程序例: 

#include <stdio.h> #include <string.h> #include <alloc.h> 

int main(void)  {     char *string1 = "1234567890";     char *string2 = "747DC8";     int length; 

    length = strcspn(string1, string2);     printf("Character where strings intersect is at position %d\n", length); 

    return 0;  } 

函数名: strdup 功  能: 将串拷贝到新建的位置处 用  法: char *strdup(char *str); 程序例: 

#include <stdio.h> #include <string.h> #include <alloc.h> 

int main(void)  {     char *dup_str, *string = "abcde"; 

    dup_str = strdup(string);     printf("%s\n", dup_str);     free(dup_str); 

    return 0;  } 

函数名: stricmp 功  能: 以大小写不敏感方式比较两个串 用  法: int stricmp(char *str1, char *str2); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *buf1 = "BBB", *buf2 = "bbb";    int ptr; 

   ptr = stricmp(buf2, buf1); 

   if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n"); 

   if (ptr < 0)       printf("buffer 2 is less than buffer 1\n"); 

   if (ptr == 0)       printf("buffer 2 equals buffer 1\n"); 

   return 0; } 

函数名: strerror 功  能: 返回指向错误信息字符串的指针 用  法: char *strerror(int errnum); 程序例: 

#include <stdio.h> #include <errno.h> 

int main(void) {    char *buffer;    buffer = strerror(errno);    printf("Error: %s\n", buffer);    return 0; } 

函数名: strcmpi 功  能: 将一个串与另一个比较, 不管大小写 用  法: int strcmpi(char *str1, char *str2); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *buf1 = "BBB", *buf2 = "bbb";    int ptr; 

   ptr = strcmpi(buf2, buf1); 

   if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n"); 

   if (ptr < 0)       printf("buffer 2 is less than buffer 1\n"); 

   if (ptr == 0)       printf("buffer 2 equals buffer 1\n"); 

   return 0; } 

函数名: strncmp 功  能: 串比较 用  法: int strncmp(char *str1, char *str2, int maxlen); 程序例: 

#include <string.h> #include <stdio.h> 

int  main(void) 

{    char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";    int ptr; 

   ptr = strncmp(buf2,buf1,3);    if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n");    else       printf("buffer 2 is less than buffer 1\n"); 

   ptr = strncmp(buf2,buf3,3);    if (ptr > 0)       printf("buffer 2 is greater than buffer 3\n");    else       printf("buffer 2 is less than buffer 3\n"); 

   return(0); } 

函数名: strncmpi 功  能: 把串中的一部分与另一串中的一部分比较, 不管大小写 用  法: int strncmpi(char *str1, char *str2); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *buf1 = "BBBccc", *buf2 = "bbbccc";    int ptr; 

   ptr = strncmpi(buf2,buf1,3); 

   if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n"); 

   if (ptr < 0)       printf("buffer 2 is less than buffer 1\n"); 

   if (ptr == 0)       printf("buffer 2 equals buffer 1\n"); 

   return 0; } 

函数名: strncpy 功  能: 串拷贝 用  法: char *strncpy(char *destin, char *source, int maxlen); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char string[10];    char *str1 = "abcdefghi"; 

   strncpy(string, str1, 3);    string[3] = '\0';    printf("%s\n", string);    return 0; } 

函数名: strnicmp 功  能: 不注重大小写地比较两个串 用  法: int strnicmp(char *str1, char *str2, unsigned maxlen); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *buf1 = "BBBccc", *buf2 = "bbbccc";    int ptr; 

   ptr = strnicmp(buf2, buf1, 3); 

   if (ptr > 0)       printf("buffer 2 is greater than buffer 1\n"); 

   if (ptr < 0)       printf("buffer 2 is less than buffer 1\n"); 

   if (ptr == 0)       printf("buffer 2 equals buffer 1\n"); 

   return 0; } 

函数名: strnset 功  能: 将一个串中的所有字符都设为指定字符 用  法: char *strnset(char *str, char ch, unsigned n); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char *string = "abcdefghijklmnopqrstuvwxyz";    char letter = 'x'; 

   printf("string before strnset: %s\n", string);    strnset(string, letter, 13);    printf("string after  strnset: %s\n", string); 

   return 0; } 

函数名: strpbrk 功  能: 在串中查找给定字符集中的字符 用  法: char *strpbrk(char *str1, char *str2); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char *string1 = "abcdefghijklmnopqrstuvwxyz";    char *string2 = "onm";    char *ptr; 

   ptr = strpbrk(string1, string2); 

   if (ptr)       printf("strpbrk found first character: %c\n", *ptr);    else       printf("strpbrk didn't find character in set\n"); 

   return 0; } 

函数名: strrchr 功  能: 在串中查找指定字符的最后一个出现 用  法: char *strrchr(char *str, char c); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char string[15];    char *ptr, c = 'r'; 

   strcpy(string, "This is a string");    ptr = strrchr(string, c);    if (ptr)       printf("The character %c is at position: %d\n", c, ptr-string);    else       printf("The character was not found\n");    return 0; } 

函数名: strrev 功  能: 串倒转 用  法: char *strrev(char *str); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char *forward = "string"; 

   printf("Before strrev(): %s\n", forward);    strrev(forward);    printf("After strrev():  %s\n", forward);    return 0; } 

函数名: strset 功  能: 将一个串中的所有字符都设为指定字符 用  法: char *strset(char *str, char c); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char string[10] = "123456789";    char symbol = 'c'; 

   printf("Before strset(): %s\n", string);    strset(string, symbol);    printf("After strset():  %s\n", string);    return 0; } 

函数名: strspn 功  能: 在串中查找指定字符集的子集的第一次出现 用  法: int strspn(char *str1, char *str2); 程序例: 

#include <stdio.h> #include <string.h> #include <alloc.h> 

int main(void) {    char *string1 = "1234567890";    char *string2 = "123DC8";    int length; 

   length = strspn(string1, string2);    printf("Character where strings differ is at position %d\n", length);    return 0; } 

函数名: strstr 功  能: 在串中查找指定字符串的第一次出现 用  法: char *strstr(char *str1, char *str2); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char *str1 = "Borland International", *str2 = "nation", *ptr; 

   ptr = strstr(str1, str2);    printf("The substring is: %s\n", ptr);    return 0; } 

函数名: strtod 功  能: 将字符串转换为double型值 用  法: double strtod(char *str, char **endptr); 程序例: 

#include <stdio.h> #include <stdlib.h> 

int main(void) {    char input[80], *endptr;    double value; 

   printf("Enter a floating point number:");    gets(input);    value = strtod(input, &endptr);    printf("The string is %s the number is %lf\n", input, value);    return 0; } 

函数名: strtok 功  能: 查找由在第二个串中指定的分界符分隔开的单词 用  法: char *strtok(char *str1, char *str2); 程序例: 

#include <string.h> #include <stdio.h> 

int main(void) {    char input[16] = "abc,d";    char *p; 

   /* strtok places a NULL terminator    in front of the token, if found */    p = strtok(input, ",");    if (p)   printf("%s\n", p); 

   /* A second call to strtok using a NULL    as the first parameter returns a pointer    to the character following the token  */    p = strtok(NULL, ",");    if (p)   printf("%s\n", p);    return 0; } 

函数名: strtol 功  能: 将串转换为长整数 用  法: long strtol(char *str, char **endptr, int base); 程序例: 

#include <stdlib.h> #include <stdio.h> 

int main(void) {    char *string = "87654321", *endptr;    long lnumber; 

   /* strtol converts string to long integer  */    lnumber = strtol(string, &endptr, 10);    printf("string = %s  long = %ld\n", string, lnumber); 

   return 0; } 

函数名: strupr 功  能: 将串中的小写字母转换为大写字母 用  法: char *strupr(char *str); 程序例: 

#include <stdio.h> #include <string.h> 

int main(void) {    char *string = "abcdefghijklmnopqrstuvwxyz", *ptr; 

   /* converts string to upper case characters */    ptr = strupr(string);    printf("%s\n", ptr);    return 0; } 

函数名: swab 功  能: 交换字节 用  法: void swab (char *from, char *to, int nbytes); 程序例: 

#include <stdlib.h> #include <stdio.h> #include <string.h> 

char source[15] = "rFna koBlrna d"; char target[15]; 

int main(void) {    swab(source, target, strlen(source));    printf("This is target: %s\n", target);    return 0; } 

自己在一个 evc的模拟器里 跑了一下这个

   LPWSTR szPathPrefix,s;

   TCHAR szPath[MAX_PATH];   GetModuleFileName(NULL,szPath,MAX_PATH);   szPathPrefix = szPath;   s=wcsrchr(szPathPrefix,L'\\');   DrawText(hdc, s, _tcslen(s), &rt,     DT_SINGLELINE | DT_VCENTER | DT_CENTER);

画出来的结果是 \testevc3.exe

要取前面的看来要有所变化。

宽字符处理函数函数与普通函数对照表相关推荐

  1. C/C++宽字符与控制台程序

    在我刚开始学C/C++的时候,字符类型使用的都是char.接触Win32编程之后,养成了使用wchar_t的习惯,于是再写控制台程序的时候自然就使用wchar_t了.然而在控制台程序中使用宽字符会导致 ...

  2. [C/C++]宽字符与控制台程序

    转自:http://www.cnblogs.com/zplutor/archive/2010/11/27/1889227.html 在我刚开始学C/C++的时候,字符类型使用的都是char.接触Win ...

  3. [C/C++]宽字符与控制台输出

    在我刚开始学C/C++的时候,字符类型使用的都是char.接触Win32编程之后,养成了使用wchar_t的习惯,于是再写控制台程序的时候自然就使用wchar_t了.然而在控制台程序中使用宽字符会导致 ...

  4. mbstowcs 和 wcstombs函数:C语言提供的宽字符和多字节字符转换函数

    C语言中的多字节字符与宽字符 字符型char只占八位,存储ascii码的,而宽字符型是为了存储多国语言的代码unicode,包括中文,法语德语什么的,8位256种不够用了 C语言原本是在英文环境中设计 ...

  5. 求变量的数据类型,typeid,bool,C和C++的不同,new和delete,C++中的枚举,inline和可变参数模板,auto和函数模板,宽字符

    求变量的数据类型,通过函数typeid(变量名).name();获得变量的数据类型. 案例如下: #include<iostream> #include<stdlib.h> v ...

  6. volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域

     1.volatile:要求参数修改每次都从内存中的读取.这种情况要比普通运行的变量需要的时间长. #include <stdio.h> #include <stdlib.h&g ...

  7. 摘:常用函数(包括:宽字符函数、普通C函数 )

    只要看见"W"就是宽的意思,左边wchar_t,右边char 字符分类: 宽字符函数            普通C函数            描述 iswalnum()       ...

  8. ACMNO.26 C语言-字符统计2 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

    题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数, 在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据, ...

  9. 【小白学习C++ 教程】十七、C++ 中的字符数组和字符串常见的函数

    @Author:Runsen 字符数组 char mychar[6] = {'H', 'e', 'l', 'l', 'o'}; 下面定义的字符串数组在 C/C++ 中的内存表示 #include &l ...

  10. 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)

     1  多行函数(理解:有多个输入,但只输出1个结果) SQL>select count(*) from emp; COUNT(*) ------------- 14 B 字符函数Lower ...

最新文章

  1. 网易微专业之《前端开发工程师》学习笔记(1)
  2. 【模拟】P1424 小鱼的航程(改进版)
  3. javascript --- 对象属性的深层次获取
  4. python中continue只结束本次循环_循环(while,break,continue),转义字符
  5. LeetCode66——Plus One(一个整数用数组存储,然后在末尾加1)
  6. echart 三维可视化地图_揭秘720°三维全景3D实景地图制作技术
  7. linux串口 接收 字符串_非常好用的 Win10 串口调试助手
  8. 三轴、六轴、九轴传感器
  9. 怎么快速修改图片的像素?
  10. homework2的进展
  11. OKR-Periods of Words
  12. 从零开始学python项目_从零开始学Python程序设计
  13. Hexo中NexT主题添加CNZZ统计
  14. java的(PO,VO,TO,BO,DAO,POJO)类名包名解释
  15. 00后面试华为软件测试工程师,竭尽全力拿到15K。。。。。
  16. android 高德地图定位圈,android ------ 实现高德定位并获取相应信息 ( 最新版高德SDK 和 Android SDK版本)...
  17. 什么是微服务?微服务架构的优缺点、应用
  18. mysql in个数限制_mysql where in 条件中参数个数问题
  19. python下载所有股票日交易数据
  20. 牙膏不只可刷牙——32不寻常用途!!

热门文章

  1. 计算机里的声卡的主要作用,声卡是什么?他的主要作用有哪些?
  2. 林轩田之机器学习课程笔记( embedding numerous feature之dual support vector machine)(32之18)
  3. 阿里云Aliplayer视频播放2(断点续播--根据上次播放记录实现续播功能)
  4. 微信分享朋友圈功能开发流程详解
  5. 遇到oracle错误20001,IMP-00003: 遇到 ORACLE 错误 20001
  6. python实现GCD算法
  7. 【生活】换手机号需要更改哪些绑定
  8. OFF文件格式_拔剑-浆糊的传说_新浪博客
  9. hdu 3966 树链剖分
  10. win10下ipv6安装与设置