`
hcmfys
  • 浏览: 356406 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多
宽字符处理函数函数与普通函数对照表 
  

字符分类:     宽字符函数普通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

要取前面的看来要有所变化。
分享到:
评论

相关推荐

    C_宽字符处理函数函数与普通函数对照表(转).docx

    在C语言中,宽字符处理函数是用于处理宽字符(如UTF-16或UTF-32编码的字符)的特殊函数,它们与处理普通字符(通常为ASCII编码的单字节字符)的函数有所不同。宽字符处理函数主要用于处理多语言环境和非ASCII字符集...

    VC++字符串处理函数对照表(宽字符与ANSI字符)

    ### VC++字符串处理函数对照表(宽字符与ANSI字符) #### 概述 本文档旨在为开发人员提供一个清晰的指南,以便更好地理解和使用C语言中的ANSI字符与C++中的宽字符处理函数。通过对比不同的数据类型以及相应的字符...

    C++宽字符处理对照

    在C++中,处理宽字符(即wchar_t类型)时,通常会用到一系列的字符属性判断函数来帮助判断宽字符的一些基本属性。 - **iswalnum()**:此函数用于判断一个宽字符是否为字母或数字。 - **iswalpha()**:用于判断一个...

    C++_Unicode_SBCS函数对照表

    C++ Unicode SBCS 函数...本资源提供了一个便捷的 C++ Unicode 和 SBCS 函数对照表,对于 char 和 TCHAR 两种字符类型的操作函数进行了详细的对比和解释,旨在帮助开发者快速理解和掌握 Unicode 和 SBCS 的编程技术。

    Char()字符转换对照表

    Char()字符转换对照表,一张很小巧便捷的图片,方便平时SQLServer编写时Char()函数转换字符对照。

    hive和oracle常用函数对照表.xlsx

    hive和oracle常用函数对照,包含常用的函数分类 字符函数 数值函数 日期函数 聚合函数 转换函数 其他 增加的hive函数对比,只需要2个积分喔

    通达信与大智慧公式对照表.docx

    以上是通达信与大智慧之间部分常用公式和函数的对照表,这些函数主要用于股票和技术指标的计算。在实际使用过程中,需要注意两者的差异和兼容性问题,特别是在转换公式时,必须仔细核对每个函数的具体用法和参数,以...

    VB6与VBNET函数对照表

    标题:VB6与VB.NET函数对照表 描述:本文旨在为开发者提供一个全面的对照表,展示VB6与VB.NET中常见函数的对应关系,帮助从VB6迁移至VB.NET的开发者快速理解和适应新的编程环境。 ### VB6与VB.NET函数对照概览 ##...

    Unicode和ANSI对照表

    unicodeandANSI.txt是对照表的Unicode版本 unicodeandANSI2ANSI.txt是对照表的ANSI版本 有些Unicode字符在ANSI中是没有的,它们的ANSI码是“63”(问号)或者“9”(不可见字符)。 两个程序有兴趣的人自行研究了,...

    matplotlib函数对照表(彩色图示版).pdf

    由于Matplotlib库庞大且功能丰富,为了方便用户快速查找和应用各种绘图功能,通常会制作Matplotlib函数对照表,其中包含了常用配置函数的图示与对照,以提供直观的学习参考。此次提供的对照表针对的是Matplotlib的...

    C++ Unicode SBCS 函数对照表

    在C++编程中,Unicode和SBCS(Single Byte Character Set)是两种处理字符编码的方式。...正确地使用宽字符和窄字符函数,能确保程序在不同编码环境中正确工作,并且可以提供更好的兼容性和可移植性。

    MATLAB希腊字母对照表

    MATLAB希腊字母对照表 MATLAB是一款功能强大且广泛应用的数学软件,对于希腊字母的输入和使用尤为重要。希腊字母在MATLAB中扮演着重要的角色,例如在数学公式的输入、符号的表示、数据的分析等方面。在本文中,我们...

    C++ Unicode SBCS 函数对照表.doc

    在C++编程中,Unicode和Single Byte Character Set (SBCS)是两种处理字符串编码的方式。Unicode是一种广泛接受的...此外,对于自动化工具替换字符升级到Unicode版本,对照表提供了全面的函数列表,有助于实现平滑过渡。

    c++,c#函数类型对照表

    ### C++与C#函数类型对照表解析 在软件开发领域,尤其是在进行跨语言编程时,理解不同编程语言之间的类型转换至关重要。本文旨在通过详细分析一份C++与C#函数类型的对照表,帮助读者更好地理解这两种语言之间的数据...

    Ebcdic和ASCII字符对照表

    ### EBCDIC与ASCII字符对照表详解 #### 引言 在计算机科学领域,字符编码是数据处理和信息存储的基础。两种广泛使用的字符编码体系分别是EBCDIC(Extended Binary Coded Decimal Interchange Code)和ASCII...

    C语言UNICODE和ANSI函数对照表

    ### C语言UNICODE和ANSI函数对照表 在软件国际化(Internationalization)和本地化(Localization)的过程中,处理不同字符集是至关重要的。对于使用C语言进行编程的开发者来说,了解如何在ANSI和UNICODE两种不同的...

Global site tag (gtag.js) - Google Analytics