求编一个简单的函数
我想要做一个函数实现如下功能:
输入两个字符串,一个是源字符串一个是目标字符串,为源字符串前面添加适当个数的字符 '0 ',使得源字符串长度达到另一个输入的整数t
函数原型:char *fun(char *dst,char *src,int t)
请各位老大帮忙!希望越简练越好!!!
谢谢!!
[解决办法]
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
char *z = "00000000 ";
char *fun(char *dst, const char *src, int t) // 不要修改src的话用const char *输入吧
{ return strcat(strcpy(dst,z+strlen(z)+strlen(src)-t),src); }
int main()
{
const char *s = "aabbss ";
char tmp[100];
cout < <fun(tmp,s,10) < <endl;
getch();
return 0;
}
[解决办法]
char *fun(char *dst,char *src,int t)
{
int len = strlen(src);
if (len > = t)
return src;
memset(dst, '0 ', t - len);
dst[t - len] = '\0 ';
strcat(dst, src);
return dst;
}
[解决办法]
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
char *fun(char *dst,char *src,int t);
int main(void)
{
char d[80], s[]= "test ";
fun(d, s, 10);
puts(d);
return 0;
}
char *fun(char *dst,char *src,int t)
{
memset( dst, '0 ', t); //设置 t 个 '0 '
strcpy(dst+(t-strlen(src)), src); //末尾字符使用 src 覆盖
return dst;
}