Jestem kompletnym laikiem z języka C. Proszę o pomoc w napisaniu funkcji pracujących na ciągach znaków. Mam takie zadanie:
-
drukuj_stringa
- ma wypisać na wyjście standardowe ciąg znakówstr
z użyciem funkcjiputchar(int)
; -
dlugosc_stringa
- ma zwrócić długość ciągu znaków; -
dopisz_stringa
- ma dopisać ciąg znakówdopisz_mnie
na końcu stringacel
. Przy czym tablicacel
macel_n
znaków. Jeżeli cel nie zmieści się w tablicycel
, to należy dopisać tyle znaków z ciągu znakówdopisz_mnie
ile się zmieści. Ostatnim dopisanym znakiem musi być znak0
; -
int_to_string
- ma zamienić liczbęx
do postaci ciągu znaków i zapisać wynik w tablicycel
. Tablicacel
ma długośćcel_n
znaków. Jeżeli nie wszystkie znaki zmieszczą się wcel
to zapisać tyle znaków ile się zmieści; -
szukaj_w_stringu
- funkcja ma zwrócić pozycję pierwszego wystąpienia ciągu znakówszukaj_tego
w ciągu znakówszukaj_tutaj
. Jeżeli ciągszukaj_tego
nie występuje w ciąguszukaj_tutaj
, to funkcja ma zwrócić-1
.
Mam zaimplementować następujące funkcje:
void drukuj_string(char *str);
int dlugosc_stringa(char *str);
void dopisz_stringa(char *cel, int cel_n, char *dopisz_mnie);
void int_to_string(char *cel, int cel_n, int x);
int szukaj_w_stringu(char *szukaj_tutaj, char *szukaj_tego);
#include <stdio.h>
#include <string.h>
void drukuj_string(char *str)
{
int i;
for(i=0; i<=str[0]; i++){
if(str[i] !=0) {
putchar(str[i]);
}
}
}
int dlugosc_stringa(char *str, unsigned int rozmiar)
{
if (strlen(str) > rozmiar)
*(str + rozmiar) = '\0';
}
void dopisz_stringa(char *cel, int cel_n, char *dopisz_mnie)
{
}
void int_to_string(char *cel, int cel_n, int x)
{
}
int szukaj_w_stringu(char *szukaj_tutaj, char *szukaj_tego)
{
}
int main()
{
char *s = "Ala ma kota";
char p[100] = "Ala";
char *q = " ma kota";
char *pusty = "";
drukuj_string(s); // wypisz za pomoca putchar
printf(" \nDlugosc stringa: %d\n", dlugosc_stringa(s,20));
dopisz_stringa(p, 100, q);
drukuj_string(p);
szukaj_w_stringu("Ala ma kota", "ma"); // zwroc 4
return 0;
}