字符串相关操作详解

1.字符串的长度计算(strlen)
调用库函数(string.h)
a[i];
len=strlen(a);
除了调用库函数,可由下列的代码实现相同功能。
相对应的代码:
#include<stdio.h>
int main()
{
char a[20];
char *p;
int i=0;
printf(“Please input str:\n”);
scanf("%s",a);
p=a;
while((*p)!=’\0’)
{
i++;
p++;
}
printf(“strlen(str)=%d\n”,i);
return 0;
}
2.字符串的复制
调用库函数(string.h)
strcpy(dest_str,src_str)就能实现。
除了调用库函数还可以用下面代码实现
代码如下:
#include<stdio.h>
char * my_strcpy(char *src,char *dest);
int main()
{
char src_str[1000];
char dest_str[1000];
char *p=NULL;

printf("Please input str:\n");
scanf("%s",src_str);
p = my_strcpy(src_str,dest_str);
printf("%s\n",dest_str);
return 0;

}
char * my_strcpy(char *src ,char *dest)
{
char *p=dest;
while(*src)
{
*dest=*src;
src++;
dest++;
}
*dest=’\0’;
return p;
}
3.字符串复制几个字符的命令(strncpy)
调用库函数
strncpy( dest_str,src_str,nbytes)即可
除此可自己编写代码实现上述功能
代码如下:
#include<stdio.h>
int main()
{
char src_str[1000];
char dest_str[1000];
char *p1=src_str;
char *p2=dest_str;
int nbytes;
printf(“input one shuzu:\n”);
scanf("%s",src_str);
printf(“input one number:\n”);
scanf("%d",&nbytes);
while(*p1&&nbytes)
{
*p2=*p1;
p1++;
p2++;
nbytes–;
}
p2=’\0’;
printf("%s\n",dest_str);
return 0;
}
4.两个字符串进行连接(strcat)
strcat(dest_str,src_str)即可
除此编写程序实现
代码如下:
#include<stdio.h>
int main()
{
char src_str[1000];
char dest_str[1000];
char *tmp=src_str;
char *p2=dest_str;
printf(“input two shuzu:\n”);
scanf("%s%s",src_str,dest_str);
if(src_strNULL||dest_strNULL)
return 0;
while(*p2)
{
p2++;
}
while(*tmp)
{
*p2=*tmp;
tmp++;
p2++;
}
*p2=’\0’;
printf("%s\n",dest_str);
return 0;
}
5.字符串操作命令之比较两字符串大小(strcmp)
调用库函数string.h
strcmp(dest_str,src_str)即可
除此自己编写程序实现相同功能
代码如下:
#include<stdio.h>
int main()
{
char src_str[1000];
char dest_str[1000];
char *p1=src_str;
char *p2=dest_str;
int ret;
printf(“imput two str:\n”);
scanf("%s%s",src_str,dest_str);
while(*p1==*p2)
{
if(*p1==’\0’)
{
ret=0;
printf("%d\n",ret);
break;
}
p1++;
p2++;
}
if(*p1!=*p2)
{
ret=1;
printf("%d\n",ret);
}
return 0;
}
最后倘若直接调用这些命令,务必加上库函数,即在函数开头加上预处理语句:#include<string.h>.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值