zoukankan      html  css  js  c++  java
  • C++常用字符串操作举例

    常用字符串操作:
        strcpy_s,strcat_s,strchr,strcmp,_strcmpi,strcspn,_strdup,_stricmp,strerror_s,

    strncmp,_strnicmp,strncpy_s,_strnset_s,strpbrk,strrchr,_strrev,_strset_s,strspn,

    strstr,strtod,strtok_s,strtol,_strlwr_s,_strupr_s,_swab

    举例如下:

      1 #include<iostream>
      2 #include<string>
      3 using namespace std;
      4 
      5 int main()
      6 {
      7     /*char string[10];
      8     char *str1 = "abcdefghi";
      9 
     10     strcpy_s(string,str1);
     11 
     12     printf("%s
    ",string);*/
     13 
     14     /*char destination[25];
     15     char *blank = " ", *c = "C++", *Borland = "Borland";
     16 
     17     strcpy_s(destination, Borland);
     18     strcat_s(destination, blank);
     19     strcat_s(destination, c);
     20 
     21     printf_s("%s
    ",destination);*/
     22 
     23     /*char string[20];
     24     char *ptr, c = 'r';
     25 
     26     strcpy_s(string, "This is a string");
     27     ptr = strchr(string, c);
     28     if(ptr)
     29     printf_s("The character %c is at position: %d
    ", c, ptr - string);
     30     else
     31     printf_s("The character was not found
    ");*/
     32 
     33     /*char *buf1 = "aaa",  *buf2 = "BBB", *buf3 = "ccc";
     34     int ptr;
     35 
     36     ptr = strcmp(buf2, buf1);//区分大小写
     37     if(ptr > 0)
     38     printf_s("buffer 2 is greater than buffer 1
    ");
     39     else
     40     printf_s("buffer 2 is less than buffer 1
    ");
     41 
     42     ptr = strcmp(buf2, buf3);
     43     if(ptr > 0)
     44     printf_s("buffer 2 is greater than buffer 3
    ");
     45     else
     46     printf_s("buffer 2 is less than buffer 3
    ");*/
     47 
     48     /*char *buf1 = "BBB", *buf2 = "bbb";
     49     int ptr;
     50 
     51     ptr = _strcmpi(buf2, buf1);//不区分大小写的比较两个buffer的前n个字符
     52     if(ptr > 0)
     53     printf_s("buffer 2 is greater than buffer 1
    ");
     54     else if(ptr < 0)
     55     printf_s("buffer 2 is less than buffer 1
    ");
     56     else
     57     printf_s("buffer 2 is equals buffer 1
    ");*/
     58 
     59     /*char *string1 = "1234567890";
     60     char *string2 = "747DC8";
     61     int length;
     62 
     63     length = strcspn(string1, string2);//查找字符串2中第一个在字符串1中出现的位置
     64     printf_s("Character where strings intersect is at position %d
    ", length);*/
     65 
     66     /*char *dup_str, *string = "abcde";
     67     dup_str = _strdup(string);//将串拷贝到新建的位置处
     68     printf_s("%s
    ", dup_str);
     69     free(dup_str);*/
     70 
     71     /*char *buf1 = "BBB", *buf2 = "bbb";
     72     int ptr;
     73 
     74     ptr = _stricmp(buf2, buf1);//以大小写不敏感的方式比较两个字符串,与strcmp比较着进行记忆
     75     if(ptr > 0)
     76     printf_s("buffer 2 is greater than buffer 1
    ");
     77     else if(ptr < 0)
     78     printf_s("buffer 2 is less than buffer 1
    ");
     79     else
     80     printf_s("buffer 2 is equals buffer 1
    ");*/
     81 
     82     /*char *buffer;
     83     buffer = strerror_s(errno);
     84     printf_s("Error: %s
    ", buffer);*/
     85 
     86     /*char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
     87     int ptr;
     88 
     89     ptr = strncmp(buf2, buf1, 3);//从左到右比较两个字符串的前3个字符
     90     if(ptr > 0)
     91     printf_s("buffer 2 is greater than buffer 1
    ");
     92     else
     93     printf_s("buffer 2 is less than buffer 1
    ");
     94 
     95     ptr = strncmp(buf2, buf3, 3);
     96     if(ptr > 0)
     97     printf_s("buffer 2 is greater than buffer 3
    ");
     98     else
     99     printf_s("buffer 2 is less than buffer 3
    ");*/
    100 
    101     /*char *buf1 = "BBBccc", *buf2 = "bbbccc";
    102     int ptr;
    103 
    104     ptr = _strnicmp(buf2, buf1, 3);//不区分大小写地比较两个字符串的前三个字符
    105     if(ptr > 0)
    106     printf_s("buffer 2 is greater than buffer 1
    ");
    107     else if(ptr < 0)
    108     printf_s("buffer 2 is less than buffer 1
    ");
    109     else
    110     printf_s("buffer 2 is equals buffer 1
    ");*/
    111 
    112     /*char string[10];
    113     char *str1 = "abcdefghi";
    114 
    115     strncpy_s(string, str1, 3);
    116     string[3] = '';
    117 
    118     printf_s("%s
    ", string);*/
    119 
    120     /*char string[100] = "dhuiobnfvusbngvjhgbrjhb";//这里一定要是常量地址
    121     char letter = 'x';
    122 
    123     printf("string before strnset: %s
    ", string);
    124     _strnset_s(string, letter, 10);//将一个字符串中的前10个字符变成x
    125     printf("string after strnset: %s
    ", string);*/
    126 
    127     /*char *string1 = "cbkcgbjhsdbghdghbgh";
    128     char *string2 = "shj";
    129     char *ptr;
    130 
    131     ptr = strpbrk(string1, string2);//查找第二个字符串中在第一个字符串第一次出现的字符
    132 
    133     if(ptr)
    134     printf_s("strpbrk found first character: %c
    ", *ptr);
    135     else
    136     printf_s("strpbrk didn't find character: %c
    ");*/
    137 
    138     /*char string[20];
    139     char *ptr, c = 'r';
    140 
    141     strcpy_s(string, "Thris is a string");
    142     ptr = strrchr(string, c);//查找r最后一次出现的位置
    143     if(ptr)
    144     printf_s("The character %c is at position: %d
    ", c, ptr - string);
    145     else
    146     printf_s("The character was not found
    ");*/
    147 
    148     /*char forward[7] = "string";//这里一定是常量地址
    149 
    150     printf_s("Before strrev(): %s
    ", forward);
    151     _strrev(forward);//字符串反转
    152     printf_s("After strrev(): %s
    ", forward);*/
    153 
    154     /*char string[10] = "123456789";
    155     char symbol = 'c';
    156 
    157     printf_s("Before strset(): %s
    ", string);
    158     _strset_s(string, symbol);//用特定字符替换字符串中的所有字符
    159     printf_s("After strset(): %s
    ", string);*/
    160 
    161     /*char *string1 = "1234567890";
    162     char *string2 = "123DC8";
    163     int length;
    164 
    165     length = strspn(string1, string2);//返回第一个不在指定字符串中出现的字符下标
    166     printf_s("Character where strings differ is at position %d
    ", length);*/
    167 
    168     /*char *str1 = "Borland Internationalvsdfvtsr", *str2 = "nation", *ptr;
    169 
    170     ptr = strstr(str1, str2);//找到特定字符串出现的位置,并将该位置之后的子字符串返回
    171     printf_s("The substring is: %s
    ", ptr);*/
    172 
    173     /*char input[80], *endptr;//endptr应该只是一个缓冲
    174     double value;
    175 
    176     printf_s("Enter a floating point number:");
    177     gets_s(input);
    178     value = strtod(input, &endptr);//将字符串转换成double型值
    179     printf_s("The string is %s the number is %lf
    ", input, value);*/
    180 
    181     /*char input[16] = "abc,d,sdhj";
    182     char *p;
    183     char *next_token = NULL;
    184 
    185     p = strtok_s(input,",", &next_token);//切分
    186     if(p)
    187     printf_s("%s
    ", p);
    188 
    189     p = strtok_s(NULL, ",", &next_token);
    190     if(p)
    191     printf_s("%s
    ",p);
    192 
    193     p = strtok_s(NULL, ",", &next_token);
    194     if(p)
    195     printf_s("%s
    ",p);*/
    196 
    197 
    198     /*char *string = "87654321", *endstr;
    199     long lnumber;
    200 
    201     lnumber = strtol(string, &endstr, 10);//将一个字符串转换成长整数
    202     printf("string = %s long = %ld
    ", string, lnumber);*/
    203 
    204     /*char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
    205     char *copy1, *copy2;
    206     errno_t err;
    207 
    208     err = _strlwr_s( copy1 = _strdup(string), strlen(string) + 1);//转换为小写
    209     err = _strupr_s( copy2 = _strdup(string), strlen(string) + 1);//转换为大写
    210 
    211     printf( "Mixed: %s
    ", string );
    212     printf( "Lower: %s
    ", copy1 );
    213     printf( "Upper: %s
    ", copy2 );*/
    214 
    215     /*char from[] = "BADCFEHGJILKNMPORQTSVUXWZY";
    216     char to[] =   "..........................";
    217 
    218     printf_s( "Before: %s
            %s
    
    ", from, to );
    219     _swab( from, to, sizeof( from ) );//交换字节
    220     printf_s( "After:  %s
            %s
    
    ", from, to );*/
    221 
    222     /*char *s = "Golden Global View";
    223     char *l = "lob";
    224     char *p;
    225     
    226     p = strstr(s, l);//找到l在s中第一次出现的位置,并将该位置及其以后的字符串传递给p
    227     if(p)
    228         printf_s("%s
    ",p);
    229     else
    230         printf_s("Not Found!
    ");*/
    231 
    232     return 0;
    233 }
  • 相关阅读:
    看懂SqlServer查询计划
    jQuery 插件autocomplete自动完成应用(自动补全)(asp.net后台)
    MVC Html.AntiForgeryToken() 防止CSRF攻击
    iOS开发UI篇—transframe属性(形变)
    iOS开发UI基础—手写控件,frame,center和bounds属性
    iOS开发UI篇—Button基础
    iOS开发UI篇—UITableviewcell的性能优化和缓存机制
    iOS开发UI篇—UITableview控件基本使用
    iOS开发UI篇—UITableview控件简单介绍
    iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)
  • 原文地址:https://www.cnblogs.com/yiyi-xuechen/p/3452239.html
Copyright © 2011-2022 走看看