作者lovemost (最爱)
看板C_and_CPP
标题[问题] C语言 语法问题
时间Tue Jun 23 23:25:12 2009
char bc[33];
char *aa[58];
for(i=0;i<n;i++){
for(j=0;(HuT[i]>>j)>0;j++);
for(bc[--j]='\0',--j;j>=0;j--){
bc[j]=(HuT[i]&1)+48;
HuT[i]>>=1;
}
y=0;
printf("%c %s\n",WT[i],bc);
tabb[x]=WT[i];
//printf("%c",tab[x][0]);
if(y==0){
aa[x]=bc;
printf("%s",aa[x]);
}
x++;y=1;
}
问题出在我弄不清这里的bc到底是甚麽
printf("%c %s\n",WT[i],bc);这行确实能执行出我要结果
之後我希望将WT[i],bc此时的值做成一个table,之後才能进行编码
tabb[x]能抓到我想要的值
但是aa[x]这里不管怎麽抓,都会抓到bc最後的值
亦及a[0]=111 , a[1]=111 , a[2]=111 ,a[3]=111 这样
原本可能是
f 01
d 100
e 111
tabb[x]抓的到f d e
但a[x]抓不到01 100 所有的a[x]全会是最後的值111
请问我要如何解决...卡好久了><"~明天要交....呜
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.228.164
1F:推 dreamroad:阵列copy要用回圈... 06/23 23:49
2F:推 dreamroad:bc是阵列开头的位置 是个指标 06/24 00:08
3F:→ dreamroad:指标指向的内容才是你要抓的东西 bc[0]~bc[n] 06/24 00:11
4F:→ dreamroad:其中bc[n]=='/0', 你的aa也没宣告足够的空间 06/24 00:16
5F:→ lovemost:弄懂了~谢谢 06/24 00:19
6F:→ dreamroad:以你现在的code为基础 改成 char aa[58][33]; 06/24 00:20
7F:→ lovemost:编码的时候char会变成数字...1010会变成10... 06/24 00:29
8F:→ lovemost:还是写不出来><" 06/24 01:19
9F:→ lovemost:aa还是不知道怎麽写... 06/24 01:19
10F:→ lovemost:如何才能存进01 100 111这些数字... 06/24 01:23
11F:推 dreamroad:可惜我已经睡了... 我以为你真的懂... 06/24 21:53
12F:推 dreamroad:'0' 的 ASCII code 是 48 06/24 22:06
13F:推 dreamroad:因为你的问题没有叙述完整,所以我只能这麽猜 06/24 22:18
14F:推 dreamroad:HuT是10进位的数字 06/24 22:20
15F:推 dreamroad:bc是HuT转成2进位的字串 06/24 22:22
16F:推 dreamroad:int idx; 06/24 22:24
17F:→ dreamroad:for(id=0;;++idx) 06/24 22:25
18F:→ dreamroad:{ 06/24 22:25
19F:→ dreamroad: aa[x][idx]=bc[idx]; 06/24 22:25
20F:→ dreamroad: if( bc[idx] == '\0' ) 06/24 22:26
21F:→ dreamroad: break; 06/24 22:26
22F:→ dreamroad:} 06/24 22:26
23F:→ dreamroad:printf("%s \n", aa[x]); //is this what you want? 06/24 22:27