我们已经知道,用strlen ()函数可以得到字符串的长度。下面用到了strlen ()函数,这是
一个可以缩短字符串长度的程序:
#include#includevoid fit (char *,unsigned int);
int main(void )
{
char mesg[] = "Hold on to your hats,hackers.";
puts(mesg);
fit(mesg,7);
puts(mesg);
puts("Let's look at some more of the string.");
puts(mesg + 8);
return 0;
}
void fit (char *string,unsigned int size)
{
if(strlen(string) >size)
*(string+size) = '\0';
}
输出结果如下:
Hold on to your hats,hackers.
Hold on
Let's look at some more of the string.
to your hats,hackers.
fit函数是在指定位置放下一个空字符,使得puts()显示时遇到那个空字符就停止了。
2.strcat()strcat(代表string concatenation)函数接受两个字符串参数。它将第二个字符串的拷贝添加到第一个字符串的末尾,从而使得第一个字符串组合形成一个新的字符串,但是第二个字符串并没有被改变。
下面程序展示了该函数的功能
#include#include#define SIZE 80
int main(void )
{
char flower[SIZE];
char addon[] = "s smell like good.";
puts("what is your favorite flower?");
gets(flower);
strcat(flower,addon);
puts(flower);
puts(addon);
return 0;
}
结果如下:
what is your favorite flower?
Rose
Roses smell like good.
s smell like good.
strcat函数并没有考虑第一个字符串所在数组是否能容纳下第二个字符串,容易使得多出来的字符串溢出到其它内存空间,这时候要么做个长度检查工作,要么可以使用strncat函数,设置第三个参数,指明最多能添加的字符数,如strncat(flowers,addon,13);那么就会加到addon第十三个字符或遇到空字符为止。
3.strcmp()
strcamp(代表string comparison)是对字符串内容进行比较的函数。
#include#include#define ANSWER "keep"
#define MAX 40
int main(void )
{
char t[MAX];
puts("What is your need?");
gets(t);
while(strcmp(t,ANSWER))
{
puts("No,that's wrong, Try again.");
gets(t);
}
puts("That's right!");
return 0;
}
结果如下
What is your need?
money
No,that's wrong, Try again.
courage
No,that's wrong, Try again.
keep
That's right!
strncmp是其变种函数,多了第三个参数指定比较到第几位字符数,可以用来比较前面部分相同的字符串。
4.strcpy()
一般直接给指向字符串的指针赋值,都是复制字符串的地址,而不是本身。这时候就可以用strcpy
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:C语言学习笔记(7)——字符串函数-创新互联
分享路径:http://scgulin.cn/article/deipgc.html