user-0 提问: 文章编辑问题（用顺序表）

回复:
user: user-1
content: https://www.baidu.com/s?wd=C源代码%20顺序表%20文章编辑

user: user-2
content: #include<stdio.h> #include<string.h> #include<stdlib.h>  #define N 3//文章的行数  char str[N][80]; int len[N];   int intput(int i) {     int len;     printf("请输入第 %d 行文字\n",i+1);     fgets(str[i], 80, stdin);     len = strlen(str[i]);     str[i][len-1] = 0;      return len - 1; }   void output() {     int i;     for(i=0;i<N;i++)     {         puts(str[i]);     } }   void count() {     int i,j;     int a,b,c,d;     a=0;     b=0;     c=0;     d=0;     for(i=0;i<N;i++)     {         for(j=0;j<len[i];j++)         {             if(str[i][j]>='a' && str[i][j]<='z')                 a++; //统计小写字母             if(str[i][j]>='A' && str[i][j]<='Z')                 b++; //统计大写字母             if(str[i][j]>='0' && str[i][j]<='9')                 c++; //统计数字             if(str[i][j]==' ')                 d++; //统计空格         }     }     printf("文章中的字母个数为：%d \n",a+b);     printf("数字个数为：%d \n",c);     printf("空格个数为：%d \n",d);     printf("文章总字数为：%d \n",a+b+c+d); }   void checkstring() //统计指定字符串个数函数 {     char cstr[20];     char *p1,*p2;     int i;     int e=0;      printf("请输入需要统计的字符串:\n");     fgets(cstr, 20, stdin);     cstr[strlen(cstr) - 1] = 0;     p2 = cstr;     for(i=0;i<N;i++)     {         p1=str[i];         while(strstr(p1,p2)!=NULL) {             e++;             p1 += strlen(p2);         }     }     printf("字符串：%s 在文章中出现的次数为：%d \n",cstr,e); }  void outputdelstr() {     int i;     char cstr[20];     char *p,*p1,*p2;     int len;     printf("请输入要删除的字符串:");     fgets(cstr, 20, stdin);     cstr[strlen(cstr) - 1] = 0;     len=strlen(cstr);     p2 = cstr;     for(i=0;i<N;i++)     {         p1=str[i];         while(strstr(p1,p2)!=NULL)         {             p=p1=strstr(p1,p2);             while(*(p+len-1))             {                 *p=*(p+len);                 p++;             }         }     }     printf("删除字符串：%s 后文章为： \n",cstr);     output(); }  void menu() {     printf("**********************\n");     printf("*        菜单        *\n");     printf("**********************\n");     printf("*   1---统计字符串   *\n");     printf("*   2---删除字符串   *\n");     printf("*   0---退出系统     *\n");     printf("**********************\n"); }  int main() {     int i;     int key, t;     printf("**************************\n");     printf("* 计算机1602      666 *\n");     printf("**************************\n");      for(i=0;i<N;i++)     {         len[i] = intput(i);     }     while(1)     {         printf("**************************\n");         printf("* 计算机1602      666 *\n");         printf("**************************\n");         printf("\n");         printf("您输入的文章为：\n");         output();         printf("\n");         count();         printf("\n");         menu();         printf("\n");         printf("请输入操作：");         key=getchar();         printf("\n");         switch(key)         {             case '1':                 {                     //fflush(stdin);//功能:清空输入缓冲区，确保不影响后面的数据读取                     getchar();                     checkstring();                 }                 break;             case '2':                 {                     //fflush(stdin);                     getchar();                     outputdelstr();                 }                 break;             case '0':                 exit(0);             default:                 {                     printf("此菜单不存在！\n");                 }                 break;         }         t=getchar();  //接收回车         system("pause");     }     system("pause");     return 0; } gets不安全，建议使用fgets代替gets;  参考一下上面的代码，注意： 1。 全局变量len你没有赋值，后面直接使用，那么数组len的值都为0； 2。 查找函数，请对比上面的函数。 3。 fflush对stdin的操作是未定义的，对stdout是有效的，所以用getchar替换。

user: user-0
content: 百度上是用链表来做的，要用c++来运行。我想要用顺序表来写，c语言运行！

user: user-1
content: 百度搜相关关键字。