6 个解决方案
#1
strncpy 或者 memcpy
#2
函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);
string[3]='\0';
printf("%s",string);
return 0;
}
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#3
函数名称: memcpy
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
#4
请教楼上:
这两个函数是不是都是从第一个字符开始copy N个字符呢?如果我想copy中间的一段字符串该如何操作?是不是先要用指针定位到我想copy的地方?
这两个函数是不是都是从第一个字符开始copy N个字符呢?如果我想copy中间的一段字符串该如何操作?是不是先要用指针定位到我想copy的地方?
#5
是的。。
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);-------->strncpy(string,str1+想要开始的地方,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);-------->strncpy(string,str1+想要开始的地方,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#6
晕倒
void substing(char *pSrc,char *pDes,int StartPos,int len)
{
if(StartPos > strlen(pSrc))
return ;
len = (strlen(pSrc) - StartPos) > Len ? Len:(strlen(pSrc) - StartPos);
strncpy(pDes, pSrc+StartPos, Len);
pDes[Len] = '\0';
}
void substing(char *pSrc,char *pDes,int StartPos,int len)
{
if(StartPos > strlen(pSrc))
return ;
len = (strlen(pSrc) - StartPos) > Len ? Len:(strlen(pSrc) - StartPos);
strncpy(pDes, pSrc+StartPos, Len);
pDes[Len] = '\0';
}
#1
strncpy 或者 memcpy
#2
函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);
string[3]='\0';
printf("%s",string);
return 0;
}
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#3
函数名称: memcpy
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
#4
请教楼上:
这两个函数是不是都是从第一个字符开始copy N个字符呢?如果我想copy中间的一段字符串该如何操作?是不是先要用指针定位到我想copy的地方?
这两个函数是不是都是从第一个字符开始copy N个字符呢?如果我想copy中间的一段字符串该如何操作?是不是先要用指针定位到我想copy的地方?
#5
是的。。
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);-------->strncpy(string,str1+想要开始的地方,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);-------->strncpy(string,str1+想要开始的地方,3);
string[3]='\0';
printf("%s",string);
return 0;
}
#6
晕倒
void substing(char *pSrc,char *pDes,int StartPos,int len)
{
if(StartPos > strlen(pSrc))
return ;
len = (strlen(pSrc) - StartPos) > Len ? Len:(strlen(pSrc) - StartPos);
strncpy(pDes, pSrc+StartPos, Len);
pDes[Len] = '\0';
}
void substing(char *pSrc,char *pDes,int StartPos,int len)
{
if(StartPos > strlen(pSrc))
return ;
len = (strlen(pSrc) - StartPos) > Len ? Len:(strlen(pSrc) - StartPos);
strncpy(pDes, pSrc+StartPos, Len);
pDes[Len] = '\0';
}