字符串的输入输出及字符串函数

1.输入:

(1)scanf()

%s : 一串整个读入 

%c : 一个一个读入

char a[10];

scanf("%s",a);

格式:不加 & ,以回车或空格作为输入结束符,自动在末尾补上'\0' ,所以无法将包含空格的字符串读入。

(2)getchar()

只能输入一个字符,以'\0'作为结束标志符

char a[10];
int i=0;
while((a[i]=getchar())!='\n')
i++;
a[i]='\0';

2.输出

(1)printf()

printf("%s",a); //第一种
printf("%c",a[i]); //第二种

(2)putchar()

int i=0;
while(a[i]!='\0')
{
   putchar(a[i]);
   i++;
}

3.函数

字符串包含在文件 #include<string.h>中

(1)gets()----输入字符串

char a[10];
gets(a);

(2)puts()----输出字符串

char a[10];
gets(a);
puts(a);

(3)strcat(字符数组1,字符数组2)----字符串连接

char a[10]="子怡";
char b[10]="大哥";

strcat(str1,str2);

printf("%s",str1);

最终输出:子怡大哥

(4)strcpy()----字符串复制的函数

<1> strcpy(字符数组1,字符串2)----字符串复制

char a[10]=" ";
char b[10]="子怡大哥";

strcpy(str1,str2);

printf("%s",str1);

最终输出:子怡大哥 

 将字符串2复制到字符数组1中去。

<2> strcpy(字符数组1,字符串2,n)----字符串选择复制的函数

n:将字符串2中的单个字符复制到字符数组1中,最少0个,最多不超过字符串2的长度。

char a[10]=" ";
char b[10]="子怡大哥";

strcat(a,b,2);

printf("%s",a);

 最终输出:子怡

(5)strcmp()----字符串比较的函数

<1> strcmp(字符数组1,字符串2) ----字符串比较的函数

规则:

a. 如果全部字符相同,则认为两个字符串相等;

b. 当出现不同时,以第一对不想听的字符比较结果为准(‘a’<'b')

比较结果由函数值带回:

a. str1==str2:返回0

b. str1>str2:返回1

char str1[10]="abc";
char str2[10]="aac";

int n=strcmp(str1,str2);

printf("%d",n);

最终输出1 

c. str1<str2:返回-1

char str1[10]="aac";
char str2[10]="abc";

int n=strcmp(str1,str2);

printf("%d",n);

最终输出-1

<2> strncmp(字符数组1,字符串2,n)----字符串选择比较的函数

n:选择前n个字符比较

比较结果由函数值带回:

a. str1==str2:返回0

b. str1>str2:返回1

char str1[10]="abc";
char str2[10]="aac";

int n=strcmp(str1,str2,2);

printf("%d",n);

c. str1<str2:返回-1

char str1[10]="aac";
char str2[10]="abc";

int n=strcmp(str1,str2,2);

printf("%d",n);

(6)strlen(字符数组)----计算字符串长度的函数(不包括'\0')

char a[10]="子怡大哥";

int n=strlen(str1);

printf("%d",n);

也可直接计算字符串常量的长度

int n=strlen("子怡大哥");

printf("%d",n);

(7)strlwr(字符串)----转换为小写的函数

char str1[10]="aAbBcC";

strlwr(str1);

printf("%s",str1);

最终输出:aabbcc

(8)strupr(字符串)----转换为大写的函数

char str1[10]="aAbBcC";

strupr(str1);

printf("%s",str1);

最终输出:AABBCC

(9)strstr(字符串1,字符串2) ----查找字符串的函数

判断字符串str2是否是str1的子串,如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

如果找到数组,就会从找到的地方开始输出。

char a[]="abcde";
char b[]="bc";

char* x=strstr(a,b);

if(x==NULL)
   printf("不能找到");
else
   printf("%s",x);


版权声明:本文为m0_63188530原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。