常用字符串操作:
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 }