使用句子时,无法将元素连接到字符串

时间:2019-11-12 17:58:19

标签: c

嗯,我有一个小问题,但是首先,我将尝试解释我的程序:

用户写了一个句子,并将其保存在 char数组FileContent [100] 中。然后,用户必须写出存储在字符数组LE [5] [2]; 中的五个字母。该字母由程序按字母顺序组织,然后,最初打印用户的句子,以后再打印空格。从这里开始问题...

如果用户只写一个单词,则程序将成功运行,并且根据变量cont2中要处理的字母,将字母适当存储在另一个数组中。就像座标。

但是,当用户使用空格写一个句子时,该程序无法正常运行。最后一个过程没有执行。

希望我的英语不是很好。

谢谢!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


int main()
    {
    char FileName[25], FileContent[100], FileChanged[210]={" "}, FileContentFixed[100];
    char Table[6][6][6] =
            {
                {"","","","","","",},
                {"","A","B","C","D","E",},
                {"","F","G","H","IJ","K",},
                {"","L","M","N\xA5","O","P",},
                {"","Q","R","S","T","U",},
                {"","V","W","X","Y","Z",}
            };

char LE[5][2];

char temp[6];
int i, j, k;
int l=0;

char chara;


int a=0, cont, b, exit;

int cont2=0, cont3=0;


printf("\n Ahora escriba el contenido: ");
scanf(" %[^\n]",&FileContent);
fflush(stdin);


printf("\n Ahora digite EXCLUSIVAMENTE 5 letras, separadas con ENTER: \n");
do
    {
    gets(LE[l]);
    l++;
    fflush(stdin);
    }while(l<5);


for(i=0; i<l-1; i++)
{
    k=i;
    strcpy(temp, LE[i]);
    for(j=i+1; j<l; j++)
    {
        if(strcmp(LE[j], temp)<0)
        {
            k=j;
            strcpy(temp, LE[j]);
        }
    }
    strcpy(LE[k],LE[i]);
    strcpy(LE[i],temp);
}

printf(" Las letras, en orden, son: ");
for(i=0; i<l; i++)
    {
    printf(" %s ",LE[i]);
    }

strcpy(Table[0][1], LE[0]); //lE1 HORI
strcpy(Table[1][0], LE[0]); //LE1 VER

strcpy(Table[0][2], LE[1]); //LE2 HORI
strcpy(Table[2][0], LE[1]); //LE2 VER

strcpy(Table[0][3], LE[2]); //LE3 HORI
strcpy(Table[3][0], LE[2]); //LE3 VER

strcpy(Table[0][4], LE[3]); //LE4 HORI
strcpy(Table[4][0], LE[3]); //LE4 VER

strcpy(Table[0][5], LE[4]); //LE5 HORI
strcpy(Table[5][0], LE[4]); //LE5 VER

fflush(stdin);
printf("\n\n El contenido del archivo de texto (.txt), digitado por el usuario, es: %s",FileContent);
/*  while((chara = fgetc(File1)) != EOF)
    {
    printf("%c",chara);
    }*/

while(FileContent[a] != '\0')
    {
    if(FileContent[a]== ' ')
        {
        b=a;
        exit=1;
        while(exit==1)
            {
            fflush(stdin);
            FileContent[b]=FileContent[b+1];

            FileContent[b+1]=' ';
            b++;
            if(FileContent[b]=='\0')
                {
                exit=0; 
                }   
            }
        }
    a++;
    }
    printf("\n\n El contenido, sin espacios, es: %s",FileContent);

cont3=strlen(FileContent);
printf("\n\nHay %i caracteres en el arreglo.\n",cont3);

    while(cont2<cont3)
        {
            printf("\n %i. %c",cont2,FileContent[cont2]);
            printf(" %i\n",cont3);

            switch(FileContent[cont2])
                {
                case 'a': printf("\n a: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'A': printf("\n A: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'b': printf("\n b: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'B': printf("\n B: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'c': printf("\n c: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'C': printf("\n C: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'd': printf("\n d: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'D': printf("\n D: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'e': printf("\n e: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'E': printf("\n E: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[1][0]); printf("%s",FileChanged); break;
                case 'f': printf("\n f: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'F': printf("\n F: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'g': printf("\n g: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'G': printf("\n G: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'h': printf("\n h: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'H': printf("\n H: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'i': printf("\n i: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'I': printf("\n I: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'j': printf("\n j: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'J': printf("\n J: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'k': printf("\n k: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'K': printf("\n K: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[2][0]); printf("%s",FileChanged); break;
                case 'l': printf("\n l: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'L': printf("\n L: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'm': printf("\n m: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'M': printf("\n M: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'n': printf("\n n: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'N': printf("\n N: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'o': printf("\n o: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'O': printf("\n O: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'p': printf("\n p: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'P': printf("\n P: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[3][0]); printf("%s",FileChanged); break;
                case 'q': printf("\n q: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'Q': printf("\n Q: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'r': printf("\n r: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'R': printf("\n R: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 's': printf("\n s: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'S': printf("\n S: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 't': printf("\n t: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'T': printf("\n T: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'u': printf("\n u: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'U': printf("\n U: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[4][0]); printf("%s",FileChanged); break;
                case 'v': printf("\n r: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'V': printf("\n r: "); strcat(FileChanged,Table[0][1]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'w': printf("\n w: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'W': printf("\n W: "); strcat(FileChanged,Table[0][2]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'x': printf("\n x: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'X': printf("\n X: "); strcat(FileChanged,Table[0][3]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'y': printf("\n y: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'Y': printf("\n Y: "); strcat(FileChanged,Table[0][4]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'z': printf("\n z: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                case 'Z': printf("\n Z: "); strcat(FileChanged,Table[0][5]); strcat(FileChanged,Table[5][0]); printf("%s",FileChanged); break;
                default: printf("\n Espaciooo "); 
                }
            cont2=cont2+1;
        }

getchar();
return 0;
}

1 个答案:

答案 0 :(得分:1)

在带空格的代码中:

submitSellerDetails()

class sellerRegisterController extends Controller { private $someVariable; public function verifySeller( Request $request ) { //some logic here // assign data which you want to access inside submitSellerDetails() $this->someVariable = 'some data'; // calling submitSellerDetails() method $this->submitSellerDetails(); } public function submitSellerDetails() { //some logic here //do whatever you want with $this->someVariable; } } 是未定义的行为,但现在暂时忽略它。

while(FileContent[a] != '\0')
    {
    if(FileContent[a]== ' ')
        {
        b=a;
        exit=1;
        while(exit==1)
            {
            fflush(stdin);

fflush(stdin);在这里永远不会是空终止符,因为您在前几行中用空格覆盖了它。

            FileContent[b]=FileContent[b+1];

            FileContent[b+1]=' ';
            b++;
            if(FileContent[b]=='\0')

代码也效率不高。这是一个更有效的版本:

FileContent[b]