(C语⾔)⾃定义字符串处理函数
⾃定义字符串处理函数,函数原型如下:
1. 求字符串的长度:int udf_strlen(char s[]);
2. 两个字符串拼接(将字符串t拼接到字符串s之后):void udf_strcat(char s[],char t[]);
3. 字符串拷贝(将字符串t拷贝到字符串s中):void udf_strcpy(char s[],char t[]);
4. 字符串⽐较⼤⼩(相等返回0,⼩于返回-1,⼤于返回1):int udf_strcmp(char s[],char t[]);
5. 求字符串的⼦串(求字符串s中从指定位置startpos开始截取长度为length的⼦串,存⼊字符数组t中并返回):void
udf_substr(char s[],char t[],int startpos,int length);
#include<stdio.h>
int udf_strlen(char s[]);
void udf_strcat(char s[],char t[]);
void udf_strcpy(char s[],char t[]);
int udf_strcmp(char s[],char t[]);
void udf_substr(char s[],char t[],int idx1,int idx2);//此处没有按照题⽬的设置,采⽤起始下标和结束下标截出字串
int udf_strlen(char s[])
{
int i;
for(i=0;s[i]!='\0';i++);
return i;
}
//将字符串t拼接到字符串s之后
//s长度不够时会导致越界!
void udf_strcat(char s[],char t[])
{
for(;*s!='\0';s++);
do
{
*(s++)=*(t++);//同时实现赋值和移动指针
}while(*(t-1)!='\0');
}
//将字符串t拷贝到字符串s中
void udf_strcpy(char s[],char t[])
{
do
{
*(s++)=*(t++);//同时实现赋值和移动指针
}while(*(t-1)!='\0');
}
//相等返回0,s⼩于t返回-1,s⼤于t返回1
int udf_strcmp(char s[],char t[])
{
int ret;
do
{
ret=*s-*t;
}while(!ret&&*(s++)!='\0'&&*(t++)!='\0');//循环继续的条件:之前⽐较的两个元素相同且字符串没有结束,同时实现移动指针
if(ret>0)return 1;
else if(ret<0)return -1;
else if(ret=0)return 0;
}
自定义函数怎么用c语言//idx1 和 idx2 分别是开始和结束元素的下标
void udf_substr(char s[],char t[],int idx1,int idx2)
{
{
int i,j;
for(i=idx1,j=0;i<=idx2;i++,j++) {
t[j]=s[i];
}
t[j+1]='\0';
}
int main()
{
char a[7]={"d125"};
char b[6]={"d155"};
char t[10];
udf_substr(a,t,0,0);
/
/ printf("%d",udf_strcmp(a,b)); // udf_strcat(b,a);
// udf_strcpy(b,a);
// printf("%s",b);
// printf("%d",b[3]);
// printf("%d",a[3]);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。