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

2024-11-29 20:51:52
推荐回答(5个)
回答1:

可以自己定义一个函数来完成,举例如下:
//#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;
}

回答2:

函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件:

#include
#include
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1+1,3);
string[3]=’\0’;
printf("%s",string);
return 0;
}
不足之处,望多加提醒!

回答3:

既然是两个数组.两个空间.想赋值,只能用你说的方法吧..如果不想那么直接的用.你可以用一个函数来实现..你就看不到了..

回答4:

在标准库中有函数原型: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);

回答5:

问题描述有问题,什么b[10]?定义的时候是数组,后面就是字符。