Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C - retazec jednotlive slova vo vete opacne

Ahoj rad by som spravil program ktory si od vas vyziada hocijaku vetu a vsetky jej slova prehadze napr. Ahoj volam sa Kubo ........ johA malov as obuK. Nechcem prevratit celu vetu ale jednotlive slova samostatne ale je to asi tazsie nez som si myslel :D

/*
* File: Retazec4_Main.c
* Author: Alohaman
*
* Created on Sobota, 2013, december 14, 10:36
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Retazec4_Header.h"

/*
*
*/
int main()
{
const unsigned short MAX=40;
char veta[MAX];

printf("Napiste vetu zakoncenu medzerov: ");
fgets(veta,MAX,stdin);
slova_opacne(veta);
return 0;
}

void slova_opacne(char veta[])
{
int delitel=0;
int dlzka1=0;
int dlzka2=0;
int i=0;
int dlzka=strlen(veta);
char veta_opacne[dlzka];

while(veta[i]!='\n')
{
if(veta[i]==' ')
{
delitel=dlzka2/2;

for(dlzka1=dlzka2,dlzka2=i;dlzka1<delitel;dlzka2-- ,dlzka1++)
{
veta[dlzka1]=veta[dlzka2];
}
}
i++;
}
printf("%s",veta);
}

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Rad by som sa spytal ci existuje prikaz na prehodenie hodnot premennych napriklad char a = char b al…
Alohaman 14.12.2013 16:14
Alohaman
Přes pomocnou proměnnou. char temp; temp = a; a = b; b = temp; Na to si můžeš udělat vlastní funk…
Niko Bellic 14.12.2013 16:16
Niko Bellic
takze taka funkcia neexistuje?? Musim si ju teda vytvorit??
Alohaman 14.12.2013 16:18
Alohaman
V C myslím nic takového není..
Niko Bellic 14.12.2013 16:19
Niko Bellic
OK spravil som to takto ten swap mam ok?? Lebo tam menim hodnoty v retazci /* * File: Retazec4_Main… nový
Alohaman 14.12.2013 16:25
Alohaman
Měl bys té funkci swap předávat ukazatele, ne hodnoty. Takže swap(&veta[j],&veta[k]); Pak je může mě… nový
Niko Bellic 14.12.2013 16:32
Niko Bellic
Ok uz som spravil vsetko ako som mal a program mi spravi z Ahoj moje meno je Adam ...... johAmoje me… poslední
Alohaman 14.12.2013 16:41
Alohaman

Rad by som sa spytal ci existuje prikaz na prehodenie hodnot premennych napriklad char a = char b ale char b sa uz nemoze rovnat char a ked char a = char b :D dufam ze ste pochopili proste naraz vymenit ich hodnoty

OK spravil som to takto ten swap mam ok?? Lebo tam menim hodnoty v retazci

/*
* File: Retazec4_Main.c
* Author: zurek
*
* Created on Sobota, 2013, december 14, 10:36
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Retazec4_Header.h"

/*
*
*/
int main()
{
const unsigned short MAX=40;
char veta[MAX];

printf("Napiste vetu zakoncenu medzerov: ");
fgets(veta,MAX,stdin);
slova_opacne(veta);
return 0;
}

void swap(char* a, char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}

void slova_opacne(char veta[])
{
int delitel=0;
int dlzka1=0;
int dlzka2=0;
int i=0;
int j=0;
int k=0;
int dlzka=strlen(veta);
char veta_opacne[dlzka];

while(veta[i]!='\n')
{
if(veta[i]==' ')
{
delitel=dlzka2/2;
dlzka1=dlzka2;
dlzka2=i;

for(j=dlzka2,k=i;k<delitel;j--,k++)
{
swap(veta[j],veta[k]);
}
}
i++;
}
printf("%s",veta);
}

Ok uz som spravil vsetko ako som mal a program mi spravi z Ahoj moje meno je Adam ...... johAmoje meno je Adam nemozem najst chybu prosiiim :|

/*
* File: Retazec4_Main.c
* Author: zurek
*
* Created on Sobota, 2013, december 14, 10:36
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Retazec4_Header.h"

/*
*
*/
int main()
{
const unsigned short MAX=40;
char veta[MAX];

printf("Napiste vetu zakoncenu medzerov: ");
fgets(veta,MAX,stdin);
slova_opacne(veta);
return 0;
}

void swap(char* a, char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}

void slova_opacne(char veta[])
{
int delitel=0;
int dlzka1=0;
int dlzka2=0;
int i=0;
int j=0;
int k=0;
int dlzka=strlen(veta);
char veta_opacne[dlzka];

while(veta[i]!='\n')
{
if(veta[i]==' ')
{
dlzka1=dlzka2;
dlzka2=i;
delitel=dlzka2/2;

for(j=dlzka1,k=dlzka2;j<delitel;j++,k--)
{
swap(&veta[j],&veta[k]);
}
}
i++;
}
printf("%s",veta);
}

Zpět do poradny Odpovědět na původní otázku Nahoru