关于c语言中数组问题,如何将将一组数组的部分字符赋值给另一个数组?
如chara[10]="abcdefg";charb[10];如何使操作后可以将数组a[10]中的字符"bcd"赋值给b[10]这个数组呢?最后得到b[10]="bcd"...
如
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] 样的
谢谢帮忙了 展开
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] 样的
谢谢帮忙了 展开
5个回答
展开全部
可以自己定义一个函数来完成,举例如下:
//#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;
}
//#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;
}
展开全部
函数名称: 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;
}
不足之处,望多加提醒!
函数原型: 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;
}
不足之处,望多加提醒!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然是两个数组.两个空间.想赋值,只能用你说的方法吧..如果不想那么直接的用.你可以用一个函数来实现..你就看不到了..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在标准库中有函数原型: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);
使用参考:
char a[10]="abcdefg";
char b[10];
memset(b,'\0',10); //初始化数组
strncpy(b,a+1,3);
printf("%s",b);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题描述有问题,什么b[10]?定义的时候是数组,后面就是字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询