求大神帮我,c语言

a) 编写函数,实现字符串的拷贝功能
原型:char *myStrcpy( char *strDestination, const char *strSource );
输入:char *strDestination: 目标串
const char *strSource:源串
返回:成功,返回目标串的指针;失败返回NULL
b) 编写函数,实现求字符串长度
原型:int myStrlen(char *string);
输入:char *string:需要求长度的字符串
返回:字符串的长度
c) 编写函数,实现去掉末尾空格
原型:void myTrimRight(char * string);
输入:char *string:待处理的字符串,处理的结果串
返回:无
d) 编写主程序,对三个函数进行测试。

第1个回答  推荐于2016-08-20
你好,能够运行!希望能够采纳,谢谢了!
#include<stdio.h>
#include<string.h>
#define A 20 //自定义字符串长度
char *myStrcpy(char* strDestination,const char *strScource)//实现字符串拷贝
{
if(strcpy(strDestination,strScource))
return strDestination;
else
return NULL;
}
int myStrlen(char *string)//计算字符串长度
{
return(strlen(string));
}
void myTrimRight(char *string)//去掉末尾空格
{
int i=0;
while(1)
{
if(string[i]='\0')
{
(string[i-1])='\0';
return;
}
}
}
int main()
{
char zifuchuan1[A],zifuchuan2[A];
printf("请输入字符串:");
gets(zifuchuan1);
printf("字符串复制的结果:");
puts(myStrcpy(zifuchuan2,zifuchuan1));
printf("字符串长度为:%d\n",myStrlen(zifuchuan1));
myTrimRight(zifuchuan1);
return 0;
}追问

非常感谢,但是要求好像是输入两个字符串然后再拷贝其中一个到另一个呀

追答

没关系啊,你只要加一句get(zifuchuan2);就可以

本回答被提问者和网友采纳
第2个回答  2014-11-21
#include "stdafx.h"
char * mystrcpy(char *strDest, const char *strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));
char *address = strDest;
while ((*strDest++ = *strSrc++) != '\0');
return address;
}
int  mystrlen( char *strSrc)
{
char *p = strSrc;
int n = 0;
while (*p++ != '\0') n++;
return n;
}
void myTrimRight(char * string)
{
char *p = string;
while (*p++ != '\0');
while (*--p == ' ');
*++p = '\0';
}
int main()
{
char src[] = "abaccde ", s2[12] = "abac";
mystrcpy(s2, src);
myTrimRight(s2);
printf("%s\n", s2);
printf("%d\n", mystrlen(s2));
getch();
return 0;
}

追问

运行出错啊,fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory,告诉我这个

第3个回答  2014-11-21

采纳后给你看核心源码的密码,代码实测OK

相似回答