关于c语言中数组问题,如何将将一组数组的部分字符赋值给另一个数组?


char a[10]="abcdefg";
char b[10];
如何使操作后可以将数组a[10]中的字符"bcd"赋值给b[10]这个数组呢?
最后得到
b[10]="bcd"
不要 b[0]=a[1],b[1]=a[2],b[2]=a[3] 样的
谢谢帮忙了

可以自己定义一个函数来完成,举例如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
/*本函数将源字符串s中第n个下标开始的m个字符拷入目标t并在最后补'\0'*/
char *myfun(char *t,const char *s,int n,int m){
char *p=t;
if(m){//m为0时特殊处理返回NULL
s+=n;
while(*p++=*s++, --m && *s);
*p='\0';
return t;
}
return NULL;
}
int main(void){//测试一下
char a[10];
char *b="abcdefghi";
printf("%s\n",myfun(a,b,1,3));
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-25
函数名称: 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+1,3);
string[3]=’\0’;
printf("%s",string);
return 0;
}
不足之处,望多加提醒!本回答被提问者采纳
第2个回答  2012-01-02
既然是两个数组.两个空间.想赋值,只能用你说的方法吧..如果不想那么直接的用.你可以用一个函数来实现..你就看不到了..
第3个回答  2012-01-02
在标准库中有函数原型:char* strncpy (char*, const char*, size_t);
使用参考:
char a[10]="abcdefg";
char b[10];
memset(b,'\0',10); //初始化数组
strncpy(b,a+1,3);
printf("%s",b);
第4个回答  2012-01-02
问题描述有问题,什么b[10]?定义的时候是数组,后面就是字符。
相似回答