question

ajuda com troca de duas palavras em uma string em c?

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

int getNumWords(char name)
{
int i, numofwords = 0;
para (i = 0; i<strlen(name);i++)></strlen(name);i++)>
{
enquanto (nome [i] = = ' ')
{
i + +; //pernaei ta kena osa k um einai. Akoma k um einai stin arxi k sto telos
}
se (((i==0) && (nome [i]! =' ')) | |(eu > = 1) && ((nome [i-1] = = ' ') && (nome [i]! =' ') &&(name[i]!='\0')))
{//i 1i sun8iki einai gt um i itan 0 8a pigaine nome [-1] xwris auti
numofwords + +; 2i //STI an exw ' ' char de meta k tote metraei le3i
} //alla para \0 metraei san char opote uma seqüência de teleiwne se ' ' 8a a metrouse san le3i
}
retornar numofwords;
}

void printWord (char name, int k)
{
int i = 0, kena = 0;
se (Ka = = k-1) //an zitisw tin 1i le3i tote ta kena 8a einai 0
{
enquanto (nome [i] = = ' ')
{k //ektos um 3ekinaei apo ' ' seqüência pou tote Apal ta pername ta prwta ' '
i + +;
}
enquanto (nome [i]! =' ')
{
printf("%c",Name[i]);
i + +;
}
}
outra coisa
{
para (i = 0; i<strlen(name);i++)></strlen(name);i++)>
{
se (i = = 0)
{
enquanto (nome [i] = = ' ') //diaforetika a upologizoume me ta Ka k pername pali ta prwta ' ' um uparxoun
{
i + +;
}
}
se (nome [i] = = ' ')
{
Kena + +;
se (Ka = = k-1) //otan ftasw sta Ka pou Prêpi vgainw apo tin para
{
quebrar;
}
}
}
i + +;
enquanto ((nome [i]! =' ') &&(name[i]!='\0')) //ektupwnw ti le3i mexri para epomeno keno eu mexri para \0 um einai eu teleutaia
{
printf("%c",Name[i]);
i + +;
}
}
}

void swapWords (char name, char newName, int m, int n)
{
;
}



int main (void)
{
Char string, stringwithswap [] = "";
int i = 0, c = 0, palavras, k, m, n;
String=(Char)malloc(100sizeof(Char));
se (seqüência de caracteres = = NULL)
{
printf ("nenhum Available\n do memória");
Exit(0);
}
printf ("string de ena Dwste para xaraktirwn de polu 100:");
Gets(String);
enquanto ((i<strlen(string))&&(string[i]!='\0'))></strlen(string))&&(string[i]!='\0'))>
{
c + +;
i + +;
}
String=(Char)realloc(String,csizeof(Char));
Words=getNumWords(String);
printf ("Dwste ton ari8mo mias apo tis %d le3eis pou dwsate prin:", palavras);
scanf ("%d", &k);
enquanto ((k<=0)||(k>words))
{
printf ("Dwsate la8os ari8mo! Dwste apo 1 mexri % d: ",words);
scanf ("%d", &k);
}
printWord(string,k);
printf ("Dwste ton ari8mo 2 le3ewn apo tis % d:", palavras);
scanf ("% d % d", & m, &n);
enquanto ((m<=0)||(m>words) | |(n<=0)||(n>palavras) | |(m==n))
{
se (m = = n)
{
printf ("Dwste diaforetikes le3eis!");
}
printf ("Dwsate la8os ari8mous! Dwste apo 1 mexri %d kai gia tis 2 le3eis: ",words);
scanf ("%d", &k);
}
swapWords(string,stringwithswap,m,n);
Free(String);
GetChar();
GetChar();
retorno 0;
}

Não sei o que fazer com a função 3... o usuário dá uma seqüência de caracteres (supomos que palavras são separadas por um espaço). Embora eu fiz outras funções para cada seqüência de caracteres... para a 3ª função damos 2 números que representam duas palavras de seqüência de caracteres e a seqüência de caracteres e a função deve trocar essas duas palavras e, em seguida, copie a cadeia nova newName... Não sei o que fazer! Me ajuda! é urgente!

Aqui está um exemplo:
swapWords ("teste programa C", 2, 3, newName)
newName será "testar o programa em C"</=0)||(n></=0)||(m></=0)||(k></stdlib.h></string.h></stdio.h>
resposta Resposta
Eu não consigo encaixar meu programa inteiro, mas aqui estão as funções essenciais: void swapWords (const char linha, size_t, size_t b, char novo) {char pWord, temp, s0;     size_t n, eu;

    / Criar tokens / s0 = calloc(strlen(line) + 1, sizeof(char));     strcpy (s0, linha);     n = wordCount(line);     pWord = malloc (n sizeof(char ));     indexar (s0 pWord);

    / Trocar palavras / temp = pWord [a - 1];     pWord [a - 1] = pWord [b - 1];     pWord [b - 1] = temp;

    / Repor / strcpy (novo, "");     para (i = 0; i < n; i + +) {strcat (novo, pWord[i]);         strcat (novo, "");     } free(pWord);     Free(S0); } void tokenize (char linha, char palavras) {char p;     size_t n = 0;

    para (p = strtok(line,WS); p! = NULL; p = strtok(NULL,WS),strpbrk(p,END)) {palavras [n + +] = p;     } }

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta



Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved