1.strlen() 字符串长度
size_t strlen( const char* str);
此函数是计算字符串长度,在日常使用中可以直接写strlen()
下面是自己的一个strlen()函数剖析
#include <bits/stdc++.h>
int istrlen(const char* str)
{
int i = 0;
while( str[i]!='\0' ) {
i++;
}
return i;
}
int main()
{
char name1[100];
memset(name1,0,sizeof(0));
strcpy(name1,"suanfafenxi");
char name2[100];
memset(name2,0,sizeof(0));
strcpy(name2,"zifuchuan");
printf("istrlen=%d\n",istrlen(name1));
printf("istrlen=%d\n",istrlen(name2));
return 0;
}
运行结果
istrlen=11
istrlen=9
2.strchr() 字符串字符寻找
char *strchr(const char *s,const int c);
此函数是返回一个指向在字符串中最后一个出现c的位置,如果找不到,返回0的函数,也可以用于在字符串一中找到有没有字符串二中的字符,把字符串一中与字符串二相同的字符找出来
下面是一个例题
L1-011 A-B 分数 20
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:
输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出A−B的结果字符串。
输入样例:
I love GPLT! It's a fun game!
aeiou
输出样例:
I lv GPLT! It's fn gm!
解题代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int main(){
char a[N],b[N];
fgets(a, sizeof(a), stdin);
fgets(b, sizeof(b), stdin);
for(int i=0;i<(int)strlen(a);i++){
if(strchr(b,a[i]))
continue;
else
printf("%c",a[i]);
}
return 0;
}
3.strcpy() 字符串复制
char *strcpy(char* dest, const char* src);
- 功 能: 将参数src字符串拷贝至参数dest所指的地址
- 返回值: 返回参数dest的字符串起始地址
- 复制完字符串后,在dest后追加0
- 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况
4.strncat() 字符串拼接
char *strncat (char* dest,const char* src, const size_t n);
1.功能:将src字符串的前n个字符拼接到dest所指的字符串尾部
2.返回值:返回dest字符串的起始地址
3.如果n大于等于字符串src的长度,那么将src全部追加到dest的尾部,如果n小于字符串src的长度,只追加src的前n个字符
4.strncat会将dest字符串最后的0覆盖掉,字符追加完成后,再追加0
5.dest要有足够的空间来容纳要拼接的字符串,否则可能会造成缓冲溢出的错误情况
5.strcmp() 字符串比较
int strcmp(const char *str1, const char *str2 );
功能:比较str1和str2的大小
返回值:相等返回0,str1大于str2返回1,str1小于str2返回-1