Witam mam problem, Napisalem funkcje ktora zamienia male litery na duze i duze litery na male, jednak gdy zapisuje zmieniona tablice to jesli jest mniejsza niz zadeklarowany rozmiar to pozostale wartosci sa domyslnie wypelnione, przez co dziwne znaki znajduja sie w niej.
Moglbym zaalokowac pamiec na tablice ale nie moge korzystac z stdlib.h i string.h.
Jak moge zwrocic wskaznik do wynikowej tablicy i uciac zbedne wartosci?
w mainie uzylem funkcji ktora wypisuje po prostu do danego momentu ale to nie zmienia faktu ze funkcja change_letter_size nie dziala pomyslnie.
while (*(dest + i) != '\n') {
printf("%c", *(dest + i));
i++;
}
#include <stdio.h>
char* change_letter_size(char* dest, const char* src);
int main()
{
char dest1[1001], src2[1001];
char *dest = dest1;
char *src = src2;
int i = 0;
printf("Podaj tekst: ");
fgets(src2, 1001, stdin);
change_letter_size(dest,src);
while (*(dest + i) != '\n') {
printf("%c", *(dest + i));
i++;
}
}
char* change_letter_size(char* dest, const char* src)
{
if (dest == NULL || src == NULL) return NULL;
int i = 0, j = 0;
while (*(src + i) != '\0') {
*(dest + i) = *(src + i);
i++;
}
while (j < i) {
if (*(dest + j) >= 'a' && *(dest + j) <= 'z') *(dest + j) -= 32;
else if (*(dest + j) >= 'A' && *(dest + j) <= 'Z') *(dest + j) += 32;
j++;
}
return dest;
}
powinno byc
iNFORMATION TECHNOLOGY DEPARTMENTS MUST SPEND ENORMOUS AMOUNTS OF TIME AND MONEY WORRYING ABOUT INTEGRATING BIG COMPUTER SYSTEMS WITH BILLIONS OF PIECES OF CUSTOMER DATA. - aLEX bERENSON,
a jest
iNFORMATION TECHNOLOGY DEPARTMENTS MUST SPEND ENORMOUS AMOUNTS OF TIME AND MONEY WORRYING ABOUT INTEGRATING BIG COMPUTER SYSTEMS WITH BILLIONS OF PIECES OF CUSTOMER DATA. - aLEX bERENSON╠╠╠╠╠╠╠╠╠╠(|"