C语言中的字符串:字符串定义为字符数组。字符数组和字符串之间的区别是字符串以特殊字符’\ 0’终止。
一些最常用的String函数是:
- strcat :strcat()函数会将源字符串的副本附加到目标字符串的末尾。 strcat()函数采用两个参数:
1)目的
2)src
它将源字符串的副本追加到目标字符串。 dest末尾的终止字符被src的第一个字符替换。
返回值: strcat()函数返回目标字符串的指针dest。// CPP program to demonstrate // strcat #include
#include using namespace std; int main() { char dest[50] = "This is an"; char src[50] = " example"; strcat(dest, src); cout << dest; return 0; } 输出:This is an example
- strrchr :在C / C++中,strrchr()是用于字符串处理的预定义函数。 cstring是字符串函数所需的头文件。
此函数返回一个指针,该指针指向字符串最后一次出现的字符。
我们要查找的最后一个出现的字符作为函数的第二个参数传递,而我们必须在其中找到该字符的字符串作为函数的第一个参数传递。
句法char *strrchr(const char *str, int c)
在这里,str是字符串,c是要定位的字符。它作为int促销传递,但在内部转换回char。
例子:
// C code to demonstrate the working of // strrchr() #include
#include // Driver function int main() { // initializing variables char st[] = "GeeksforGeeks"; char ch = 'e'; char* val; // Use of strrchr() // returns "ks" val = strrchr(st, ch); printf("String after last %c is : %s \n", ch, val); char ch2 = 'm'; // Use of strrchr() // returns null // test for null val = strrchr(st, ch2); printf("String after last %c is : %s ", ch2, val); return (0); } 输出:String after last e is : eks String after last m is : (null)
- strcmp :strcmp()是内置库函数,在< 字符串.h>头文件中声明。此函数将两个字符串作为参数,然后按字典顺序比较这两个字符串。
语法::
int strcmp(const char *leftStr, const char *rightStr );
在上述原型中,函数srtcmp将两个字符串作为参数,并根据字符串的比较返回一个整数值。
- 的strcmp()的两个字符串字典顺序比较意味着它由字符从第一个字符开始,直到在两个字符串的字符是等于或遇到NULL字符开始比较字符。
- 如果两个字符串中的第一个字符相等,则此函数将检查第二个字符,如果也相等,则将检查第三个字符,依此类推
- 这一过程将继续,直到字符串中的字符为NULL或字符是不平等的。
// C program to illustrate // strcmp() function #include
#include int main() { char leftStr[] = "g f g"; char rightStr[] = "g f g"; // Using strcmp() int res = strcmp(leftStr, rightStr); if (res == 0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d", res); return 0; } 输出:Strings are equal Value returned by strcmp() is: 0
- strcpy :strcpy()是C / C++中的标准库函数,用于将一个字符串复制到另一个字符串。在C中,它存在于字符串.h头文件中,而在C++中,它存在于cstring头文件中。
句法:
char* strcpy(char* dest, const char* src);
参数:此方法接受以下参数:
- dest :指向要在其中复制内容的目标数组的指针。
- src:将被复制的字符串。
返回值:将源字符串复制到目标字符串,strcpy()函数将返回一个指向目标字符串的指针。
下面的程序解释了此库函数的不同用法:
// C program to illustrate // strcpy() function ic C/C++ #include
#include int main() { char str1[] = "Hello Geeks!"; char str2[] = "GeeksforGeeks"; char str3[40]; char str4[40]; char str5[] = "GfG"; strcpy(str2, str1); strcpy(str3, "Copy successful"); strcpy(str4, str5); printf("str1: %s\nstr2: %s\nstr3: %s\nstr4: %s\n", str1, str2, str3, str4); return 0; } 输出:str1: Hello Geeks! str2: Hello Geeks! str3: Copy successful str4: GfG
- strlen : strlen()函数计算给定字符串的长度。strlen()函数在字符串.h头文件中定义。它不计算空字符“ \ 0”。
句法:
int strlen(const char *str);
范围:
- str:它代表我们必须找到其长度的字符串变量。
返回值:该函数返回传递的字符串的长度。
下面的程序说明了C语言中的strlen()函数:
范例1:-
// c program to demonstrate // example of strlen() function. #include
#include int main() { char ch[] = { 'g', 'e', 'e', 'k', 's', '\0' }; printf("Length of string is: %lu", strlen(ch)); return 0; } 输出:Length of string is: 5
- strncat :在C / C++中,strncat()是用于字符串处理的预定义函数。 字符串.h是字符串函数所需的头文件。
该函数将以上n从字符串的字符指向由src到字符串的末尾由DEST加上终止空字符的指向。字符串(src)的初始字符将覆盖字符串(dest)末尾的Null字符。因此,字符串的长度(dest)变为strlen(dest)+ n。但是,如果字符串(src)的长度小于n ,则仅复制直到终止空字符的内容,并且字符串(dest)的长度变为strlen(src)+ strlen(dest)。
该行为是未定义的,如果
- 字符串重叠。
- dest数组的大小不足以附加src的内容。
句法:
char *strncat(char *dest, const char *src, size_t n)
参数:此方法接受以下参数:
- dest :我们要附加的字符串。
- src :要从中追加’n’个字符的字符串。
- n :表示要附加的最大字符数。 size_t是无符号整数类型。
返回值: strncat()函数应将指针返回到字符串(目标)。
程序:
// C, C++ program demonstrate functionality of strncat() #include
#include int main() { // Take any two strings char src[50] = "efghijkl"; char dest[50] = "abcd"; // Appends 5 character from src to dest strncat(dest, src, 5); // Prints the string printf("Source string : %s\n", src); printf("Destination string : %s", dest); return 0; } 输出:Source string : efghijkl Destination string : abcdefghi
- strncmp : std :: strncmp()函数从字符比较两个以null结尾的字符串,并根据结果返回一个整数。
- 该函数有两个字符串和一个数NUM作为参数,并在两个字符串的最开始的num个字节的比较。
- num最多应等于最长字符串的长度。如果将num定义为大于字符串长度,则将进行比较,直到两个字符串的null-character(’\ 0’)为止。
- 此函数按字典顺序比较两个字符串。它从每个字符串的第一个字符开始比较。如果它们彼此相等,则继续并比较每个字符串的下一个字符,依此类推。
- 比较过程将一直终止,直到达到一个终止字符串或两个字符串中的num个字符为止。
句法 :
int strncmp(const char *str1, const char *str2, size_t count); Parameters: str1 and str2: C string to be compared. count: Maximum number of characters to compare. size_t is an unsigned integral type. Return Value: Value Meaning Less than zero str1 is less than str2. Zero str1 is equal to str2. Greater than zero str1 is greater than str2.
例子:
// C, C++ program to demonstrate // functionality of strncmp() #include
#include int main() { // Take any two strings char str1[10] = "aksh"; char str2[10] = "akash"; // Compare strings using strncmp() int result = strncmp(str1, str2, 4); if (result == 0) { // num is the 3rd parameter // of strncmp() function printf("str1 is equal to str2 upto num characters\n"); } else if (result > 0) printf("str1 is greater than str2\n"); else printf("str2 is greater than str1\n"); printf("Value returned by strncmp() is: %d", result); return 0; } 输出:str1 is greater than str2 Value returned by strncmp() is: 18
- strncpy :strncpy()函数类似于strcpy()函数,不同之处在于最多复制了src个n字节。如果src的前n个字符中没有NULL字符,则放置在dest中的字符串将不会以NULL终止。如果src的长度小于n,则strncpy()将另外的NULL字符写入dest以确保总共写入了n个字符。
句法:
char *strncpy( char *dest, const char *src, size_t n )
参数:该函数接受上述和以下描述的两个参数:
- src:将被复制的字符串。
- dest:指向要在其中复制内容的目标数组的指针。
- n:从src复制到dest的前n个字符。
返回值:返回指向目标字符串的指针。
例子:
// C Program to illustrate the // strcpy() function in C/C++ #include
#include int main() { char src[] = "geeksforgeeks"; // The destination string size is 14. char dest[14]; // copying n bytes of src into dest. strncpy(dest, src, 14); printf("Copied string: %s\n", dest); return 0; } 输出:Copied string: geeksforgeeks
- strrchr :C / C++中的strrchr()函数查找字符串字符的最后一次出现。它返回一个指向字符串最后一次出现的指针。终止的空字符被视为C字符串的一部分。因此,还可以定位它以检索到字符串末尾的指针。它在cstring头文件中定义。
句法 :const char* strrchr( const char* str, int ch ) or char* strrchr( char* str, int ch )
参数:该函数采用两个强制性参数,如下所述:
- str:指定要搜索的以空终止的字符串的指针。
- ch:指定要搜索的字符。
返回值:该函数返回一个指针,指向ch的字符串中的最后一个位置,如果通道被发现。如果未找到,则返回空指针。
下面的程序说明了上述函数:
程序1:
// C code to demonstrate the working of // strrchr() #include
#include // Driver function int main() { // initializing variables char st[] = "GeeksforGeeks"; char ch = 'e'; char* val; // Use of strrchr() // returns "ks" val = strrchr(st, ch); printf("String after last %c is : %s \n", ch, val); char ch2 = 'm'; // Use of strrchr() // returns null // test for null val = strrchr(st, ch2); printf("String after last %c is : %s ", ch2, val); return (0); } 输出:String after last e is : eks String after last m is : (null)