数组a怎样输出整段字符串
#include <stdio.h>void copy_star(char from[],char to[]);
void copy_starat(char *fr,char *t);
void main()
{
char a[]="ふぅとんらせんがん";
char b[]="らいとんちどり";
char c[]="ぃへんとんぁまてらす";
printf("输出a=%s\n",a);
printf("输出b=%s\n",b);
copy_star(a,b) ;
printf("输出a=%s\n",a);
printf("输出b=%s\n",b);
}
void copy_star(char from[],char to[])
{
int i=0;
while(from!='\0')
{
to=from;
i++;
}
to='\0';
}
输出a=ふぅとんらせんがん
输出b=らいとんちどり
输出a=ん
输出b=ふぅとんらせんがん
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char a="ふぅとんらせんがん" ;
char b[]="らいとんちどり" ;
char c[]="ぃへんとんぁまてらす" ;
strcat(a , "\n") ;
strcat(a , b) ;
strcat(a , "\n") ;
strcat(a , c) ;
printf("%s\n" , a) ;
}
输出效果:
C:\Bin\00.Example\C>jp
ふぅとんらせんがん
らいとんちどり
ぃへんとんぁまてらす
C:\Bin\00.Example\C> 0x22ff40: a4 d5 a4 a5 a4 c8 a4 f3 ふぅとん
0x22ff48: a4 e9 a4 bb a4 f3 a4 ac らせんが
0x22ff50: a4 f3 00 a5 a4 c8 a4 f3 ん
0x22ff58: a4 e9 a4 bb a4 f3 a4 ac らせんが
0x22ff60: a4 f3 00 77 1c 14 40 00 ん
问题出在这里 0x22ff40: a4 e9 a4 a4 a4 c8 a4 f3 らいとん
0x22ff48: a4 c1 a4 c9 a4 ea 00 00 ちどり
0x22ff50: a4 d5 a4 a5 a4 c8 a4 f3 ふぅとん
0x22ff58: a4 e9 a4 bb a4 f3 a4 ac らせんが
0x22ff60: a4 f3 00 77 1c 14 40 00 ん
分配内存短的在前长的在后,覆盖的时候长的覆盖短的
0x22ff40: a4 d5 a4 a5 a4 c8 a4 f3 ふぅとん
0x22ff48: a4 e9 a4 bb a4 f3 a4 ac らせんが
0x22ff50: a4 f3 00 a5 a4 c8 a4 f3 ん
0x22ff58: a4 e9 a4 bb a4 f3 a4 ac らせんが
0x22ff60: a4 f3 00 77 1c 14 40 00 ん
变成这样然后后面再赋值为‘\0’,打印字符串到‘\0’结束,所以出现的问题
页:
[1]