Witam, do stworzenia miałem program, który po wpisaniu znakow dokona na tym łancuchu nastepujacych czynnosci:
- zmieni wszystkie znaki na wielkie
- zmieni wszystkie znaki na male
- odwroci znaki, np. abc -> cba
- porowna napisy i zwroci wynik porwnania nie uwzgledniajac wielkosci znakow.
wszystko oczywiscie w osobnych funkcjach.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void naduze(char str[]);
void namale(char str[]);
int odwroc(char str[]);
void porownaj(char s1[], char s2[]);
int main()
{
printf("Podaj : ");
char str[100];
scanf("%s", str);
namale(str);
naduze(str);
odwroc(str);
printf("Podaj pierwszy ciag: ");
char s1[100];
scanf("%s", s1);
printf("Podaj drugi ciag: ");
char s2[100];
scanf("%s", s2);
porownaj(s1, s2);
system("pause");
return 0;
}
void naduze(char str[])
{
int i=0;
char d;
printf("Zamiana na duze: ");
while (str[i])
{
d=str[i];
putchar (toupper(d));
i++;
}
printf("\n");
}
void namale(char str[])
{
int i=0;
char c;
printf("Zamiana na male: ");
while (str[i])
{
c=str[i];
putchar (tolower(c));
i++;
}
printf("\n");
}
int odwroc(char str[])
{
strrev(str);
printf("Odwrocone slowo: %s\n", str);
}
void porownaj(char s1[], char s2[])
{
int i=0;
char c;
while (s1[i])
{
c=s1[i];
putchar (tolower(c));
c=s2[i];
putchar (tolower(c));
i++;
}
if (strcmp (s1,s2) == 0)
{
printf("\nCiagi sa identyczne\n");
}
else
{
printf("Ciagi sa rozne\n");
}
}
no wiec jest kilka problemow:
- Jezeli wpisze jakies zdanie, np. Ala ma kota, to operacje zostana przeprowadzone tylko na slowie Ala, a nie na calym zdaniu..
- Po wpisaniu calego zdania, nie moge dokonac porownana dwoch slow funkcja strcmp. Moze ktos przejrzec kod i zobaczyc gdzie lezy blad? Pozdrawiam.