您的位置:首页 > 其它

常用字符串处理函数大全

2017-01-18 23:27 225 查看
1. getchar和putchar(字符输入输出操作)

getchar获取输入字符函数,putchar输出字符函数。一般使用形式如下:

char c;

c = getchar();// 获取终端输入字符

putchar(c);// 将字符输出到终端

eg:

#include <stdio.h>

int main(void) {
char c;/* 定义字符变量c */

printf("请输入字符:\n");
c = getchar();/* 获取输入字符 */

putchar(c);/* 输出字符 */

return 0;
}


2. gets和puts(字符串输入输出操作)

gets字符串输入,puts字符串输出。

eg:

#include <stdio.h>
#define SIZE 10

int main(void) {
char str[SIZE];

printf("请输入字符串:\n");
gets(str);/* 获取输入字符串,将输入的字符串,存在一维数组str中 */

puts(str);/* 输出字符串 */

return 0;
}
程序运行后输入hello world,回车再调用puts输出字符串:



3. strcpy和strncpy(字符串复制操作)

strcpy和strncpy都是字符串的复制函数,使用语法:

strcpy(str1,str2),强字符串str2复制到str1中,需要保证str1的有效内存空间能够存下str2的内存,

如果str2超过str1的有效内存,将会覆盖外部内存空间,可能出现不可预知的后果,所以,strcpy不是安全函数。

strncpy(str1,str2, n),将str2的前n个字符复制到st1中前n位,即将str2中的前n位覆盖掉str1中的前n位,也不是安全函数。

注意: 在字符串复制时,一般建议使用strncpy(str1,str2,n)函数。

eg:

#include <stdio.h>
#include <string.h>

int main(void) {
char str1[] = "abc";
char str2[] = "defgh";
char str3[] = "hello";
char str4[] = "world";

strcpy(str1,str2);/* 将str2复制到str1中 */
printf("str1:%s\n",str1);

strncpy(str3,str4,2);/* 将str4的前2位wo复制到str3中前两位字符空间 */
printf("str3:%s\n",str3);// wollo

return 0;
}


4. strcat和strncat(字符串拼接操作)

strcat和strncat均为字符串拼接语句。

strcat(str1,str2),将str2拼接在str1之后,

strcat(str1,str2,n),将str2的前n个字符拼接到str1后。

eg:

#include <stdio.h>
#include <string.h>
#define SIZE 20

int main(void) {
char str1[SIZE] = "a\0a";
char str2[SIZE] = "bbb";

strcat(str1,str2);
puts(str1);/* a+bbb=abbb,即str1=abbb */

strncat(str1,str2,2);
puts(str1);/* str2=str1+bb=abbb+bb=abbbbb */

return 0;
}


5. strcmp和strncmp(字符串比较操作)

strcmp和strncmp为字符串比较函数。字符串之间的比较不能通过关系运算符进行操作。

比如: str1 > str2,如果这样比较,就是比较字符串str1和str2的首地址,不能这样进行比较。

而应该使用strcmp(str1,str2)或strncmp进行比较,其中strncmp(str1,str2,n)比较str1,str2的前n个字符。

字符串通过每一个字符的ASCII码值进行大小比较,字符串中所有对应字符的ASCII相等,则两个字符串

相等,否则不相等。

eg:

#include <stdio.h>
#include <string.h>

int main(void) {
char str1[] = "hello";
char str2[] = "hello world";

/* str1与str2不相等,返回1*/
printf("strcmp=%d\n",strcmp(str1,str2));

/* 字符串str1和str2的前5个字符分别为hello,进行比较相等,返回0 */
printf("strncmp=%d\n",strncmp(str1,str2,5));

return 0;
}


6.strupr和strlwr(字符串大小写转换操作)

strupr字母小写转大写,

strlwr字母大写转小写。

#include <stdio.h>
#include <string.h>

int main(void) {
char str1[] = "Hello World";
char str2[] = "HELLO WORLD";

puts(strupr(str1));
puts(strlwr(str1));

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: