指针数组没有成功赋值,求出错原因。
【习题8.246】假设字符串中每个连续字母序列称为“单词”。编写函数,在字符串s中顺序获取每个单
词,依次存入w指示的二维数组,并返回单词个数。
例如,若有s="I am a student",则w={"I","am",
"a","student"}。注意:字符串结束符是'\0',不
允许调用字符串库函数。
**********/
int func(char *s, char (*w)[10])
{
int i,j=0,k=0;
for(i=0;*(s+i)!='\0';i++)
{
if(*(s+i)>='a'&&*(s+i)<='z'||*(s+i)>='A'&&*(s+i)<='Z')
{
*(*(w+j)+k)=*(s+i);
k++;
}
if(*(s+i+1)<'a'&&*(s+i+1)>'z'||*(s+i)<'A'&&*(s+i)>'Z') j++;
}
return j;
}
编译成功! 2013/5/15 21:34:27
<第2次运行> 2013/5/15 21:34:27
A$: func("D!K.X.U,Y", w) = 5
A$: w->{ "D", "K", "X", "U", "Y" }
E$: func("D!K.X.U,Y", w) = 0
E$: w->{ }
----- Error -----
A$: func("", w) = 0
A$: w->{ }
E$: func("", w) = 0
E$: w->{ }
===== Right =====
A$: func("00.!.6", w) = 0
A$: w->{ }
E$: func("00.!.6", w) = 0
E$: w->{ }
===== Right =====
A$: func("VK:,!YZQ,:.L!!IAM,.", w) = 4
A$: w->{ "VK", "YZQ", "L", "IAM" }
E$: func("VK:,!YZQ,:.L!!IAM,.", w) = 0
E$: w->{ }
----- Error -----
Error:2 Right:2
求问出错原因。改错代码。谢谢。