我已经写了这个脚本,它的目的是输入一个短语并仅打印第一个单词(第一个空格之前的单词)。我不明白为什么在执行它时会在输出中得到很多数字。
#include <stdio.h>
#include <stdlib.h>
#define MAX 30
/*
Prende in input una frase e stampa la prima parola
*/
char *fw();
int main () {
int j,i;
char parola[MAX],*p;
printf ("Inserisci una stringa: ");
fgets(parola,MAX,stdin);
p = fw(&parola,&i);
for (j=0; j < i; j++){
printf("%d",p[j]);
}
return 0;
}
char *fw(char *parola,int *puntatoreI) {
int i;
char *p;
for (i=0; parola[i]!=' '; i++)
;
p = (char *)malloc((i+1)*sizeof(char));
for (i=0; parola[i]!=' '; i++){
p[i] = parola[i];
}
p[i+1] = '\0';
puntatoreI = &i;
return p;
}