#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct{
char ch[20];
}CHAR;
int main(void)
{
CHAR a[20]={0};
char b[20];
int n,i=0,j=0;
do{
printf(“Enter word:”);
scanf(“%s”,&a[i].ch);
// gets(a[i].ch);
i++;
}while(a[i-1].ch[0]);(用这个条件,scanf跳不出循环)
后面省略。
#include<string.h>
#include<stdlib.h>
typedef struct{
char ch[20];
}CHAR;
int main(void)
{
CHAR a[20]={0};
char b[20];
int n,i=0,j=0;
do{
printf(“Enter word:”);
scanf(“%s”,&a[i].ch);
// gets(a[i].ch);
i++;
}while(a[i-1].ch[0]);(用这个条件,scanf跳不出循环)
后面省略。
解决方案
20
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct { char ch[20]; } CHAR; int main() { CHAR a[20]={0}; int n,i=0; char ln[21]; while (1) { printf("Enter word:");fflush(stdout); fgets(ln,21,stdin); if (ln[0]=="\n") break; sscanf(ln,"%s",&a[i].ch); i++; if (i>=20) break; } n=i; for (i=0;i<n;i++) printf("%02d [%s]\n",i,a[i].ch); return 0; }