一步一步学编程之字符串处理函数(一)

函数:strlen
功能:求数组或指针定义的字符串长度
输入:字符串数组或指针
输出:字符串长度(非负整数)
说明:
int _strlen(char *str)
{
int count = 0;
while(*str != '\0')
{
str++;
count++;
}
return count;
}
 函数:strrev 

功能:字符串反转
输入:字符串数组或指针
输出:无返回值
说明:
char _strrev(char *str)
{
char *head = str;
char *tail = str;
char ptmp;
int len = strlen(str);

while (--len)
{
tail++;
}
while (head < tail)
{
ptmp = *head;
*head = *tail;
*tail = ptmp;
head++;
tail--;
}

}

函数:strcmp
功能:比较两个字符串是否相同
输入:两个字符串数组或指针
输出:相同返回0,不同返回-1
说明:

int _strcmp(const char *str1, const char *str2)
{
int len1 = strlen(str1);
int len2 = strlen(str2);
int count = 0;
if (len1 != len2)
{
return -1;
}
else
{
while (count < len1)
{
if (str1[count] != str2[count])
return -1;
count++;
}
}
return 0;
}
函数:strcpy
功能:把字符串str2的内容拷贝给str1
输入:两个字符串数组或指针
输出:失败返回-1,成功返回0
说明:

int  _strcpy(char *str1, char *str2)
{
int s1, s2, count;
char *st1, *st2;
s1 = strlen(str1);
s2 = strlen(str2);


if (s1 < s2)
{
printf("str1 is short, copy failed!\n");
return -1;
}
else
{
st1 = str1;
st2 = str2;
puts("a");
while(*st2 != '\0')
{
*st1 = *st2;
st1++;
st2++;
count++;
}
puts("b");
if (count < s1)
{
*(st1) = '\0';
}
else
printf("str1 is short ,copy failed!\n ");
}

return 0;
}


函数:strcat
功能:把字符串str2的内容拷贝到str1后面
输入:两个字符串数组或指针
输出:
说明:

void strcat(char *restrict s1, const char * restrict s2)
{
char *tmp = s1, *tmp2 =s2;
assert(!s1 || !s2);

s1 = strdespace(s1);

while (*tmp != '\0')
tmp++;
do
{
*tmp++ = *tmp2++;
}while(*tmp2 != '\0');
        s1 = strdespace(s1);
}

函数:strdelspace
功能:消除字符串后面的空格
输入:字符串数组或指针
输出:
说明:
void strdelspace(char *str)
{
int count  = 0;
while (str[count] != '\0')
{
count++;
}
while (str[count-1] == ' ' )
{
str[count] = '\0';
count--;
}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值