编程论坛's Archiver

石雨勤 发表于 2007-11-20 23:24

字符串

<P>以下是一个程序,是将一 个字符串用一个函数将其转成一个个单词,分别出,不知错在哪儿,有人能帮我看一下吗?<BR><BR>#include &lt;stdio.h&gt;<BR>#include &lt;string.h&gt;<BR>int l;<BR>void main()<BR>{<BR> int alpha(char c);<BR> char** word(char*line);<BR> char** s1,str1[100];<BR> int m,i,j;<BR> printf("Enter the strings:\n");<BR>    gets(str1);<BR> s1=word(str1);<BR> m=l;<BR> for(i=0;i&lt;m;i++)<BR>  puts(s1[i]);</P>
<P>}<BR>int alpha(char c)<BR>{<BR>    if((c&gt;='a'&amp;&amp;c&lt;='z')||(c&gt;='A'&amp;&amp;c&lt;='Z'))<BR>  return 1;<BR> else<BR>  return 0;<BR>}<BR>char** word(char* line)<BR>{<BR> char str[20][100];<BR> char **temp;<BR> int flag=1,i,j=0,k,flag1;<BR> for(i=0;i&lt;=strlen(line);i++)<BR>  if(alpha(line[i]))<BR>   if(flag)<BR>   {<BR>    flag1=1;<BR>    k=0;<BR>    str[j][k]=line[i];<BR>    flag=0;<BR>    k++;<BR>   }<BR>   else<BR>   {<BR>    str[j][k]=line[i];<BR>    k++;<BR>   }<BR>   else<BR>   {<BR>    str[j][k]='\0';<BR>    flag=1;<BR>    if(flag1)<BR>    {<BR>     j++;<BR>     flag1=0;<BR>    }<BR>   }<BR>  temp=str;<BR>   l=j;<BR>   return temp;<BR>}</P>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.