函數名: 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;
}
函數名: 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;
}
函數名: 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 功 能: strdup()在內部調用了malloc()為變量分配內存,不需要使用返回的字符串時,需要用free()釋放相應的內存空間,否則會造成內存泄漏。 用 法: 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[50] = "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;
}
函數名: 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;p = strtok(input, ",");
if (p) printf("%s\n", p);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;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;ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}
函數名: strlwr 功 能: 將串中的大寫字母轉換為小寫字母 用 法: char *strlwr(char *str); 程序例:
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>int main()
{
<span style="white-space:pre"> </span>char from[] = "qwerwFDGSFEGHertw ";
<span style="white-space:pre"> </span>char * p = strlwr(from);
<span style="white-space:pre"> </span>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;
}
總結
以上是生活随笔 為你收集整理的C++字符串操作函数 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。