在字符串中除了输入输出外,还有四个常用的函数,接下来我么来看一下它们的功能和用法。
strlen(求字符串长度)
功能:统计字符串str中实际字符的个数。
用法:strlen(str)(其中str是字符串)
通常在程序中会设一个int型len来接住它(len=strlen(str))
重点:取长度的时候不会把字符串中的\0算到里面去,如果要算数组的总长度就用sizeof(str)
strcpy(字符串复制函数)
功能:将字符串2复制到字符串1中,包括字符串结束符而且会覆盖原字符串1中对应位置的字符
用法:strcpy(str1,str2)(其中str1可以认定为目标串,str2可以认定为原串)
最好目标串和原串设的长度一样
strcat(字符串连接函数)
功能:将字符串2连接到字符串1后面,(连接位置从字符串1中的字符串结束符‘\0’开始,连接 完自动加上‘\0’结束符)
用法:strcat(str1,str2) 其中str1必须为字符数组名或者字符指针,str2可以为字符数组名、字符 指针或者字符串常量
(str1的长度足够大,能够容纳str2对应的字符串连接之后所产生的新的字符串,否则会出现错误)
strcmp(字符串比较函数)
字符串的比较运算不能通过关系运算所以只能用这个函数,所以是一个很重要的函数一定要掌握
功能:比较str1与str2的大小,若str1小于str2则函数返回值为负数;若等于则返回0;若大于则返 回正数。
比较规则:从第一个字符开始,将两个字符串对应位置上的字符按照ASCII码值进行比较,直到 出现第一个不同的字符或者字符串结束符为止。这两个不相同的字符的ASCII码值大 小决定其所在串的大小。若同时遇到字符串结束符则以为这这两个字符串相等。
从这个函数中又衍生出一道题目那就是“回文”
来我们看一下题目:编程实现字符串是否回文的判断。
#include <stdio.h>
#include <string.h>
int IsPalin(char *string2)
{
char str1[30];
strcpy(str1,string2);
int flag=0,len=0;
int i=0,j=0,k;
len=strlen(string2)-1;
for(i=0;i<len;i++,len--)
{
k=str1[i]; //利用新的字符串进行收尾对称交换形成一个新的字符串
str1[i]=str1[len];
str1[len]=k;
}
if(strcmp(str1,string2)==0) //用新的字符串与原字符串进行比较==0则为相同的所以是回文
flag=1;
else
flag=0;
return flag;
}
int main()
{
char str[30];
int n;
printf("请输入字符串:\n");
gets(str);
n=IsPalin(str);
if(n==1)
{
printf("字符串%s是回文。",str);
}
else
{
printf("字符串%s不是回文。",str);
}
return 0;
}
OK,这就是今天的内容,加油!!!