【发布时间】:2015-09-20 03:25:05
【问题描述】:
我编写了一个算法来从字符串中提取单词并将它们存储在一个数组中,但是我得到了一个不需要的结果,我不知道为什么。输出是一个非常奇怪的字符。
#include <stdio.h>
#include <windows.h>
char *extract(char *String)
{
char str[10][20];
int x = -1,y = 0,z = 0;
for( size_t n = 0 ; n < strlen(String) ; n++ )
{
y++;
if( String[n] == ' ' ) y = 0, z = 0;
if( y == 1 ) x++;
if( y > 0 )
{
str[x][z] = String[n];
z++;
str[x][z] = '\0'; //Comment this*********
}
}
/*for( int n = 0; n < 10; n++ ) Uncomment this*****
{
str[n][3] = '\0';
}*/
return str[7];
}
int main()
{
printf( "WORD : %s\n",extract("POL POL POL POL POL POL POL POL POL POL") );
system("PAUSE");
return 0;
}
这段代码的错误在哪里?
注意:当我在其他地方使用 printf 和 strlen 时,我也会得到奇怪的字符。
【问题讨论】:
标签: c function pointers printf return-value