👤

Napisz program wykonujący następujące polecenia na napisach:


a) obliczenie liczby znaków d


b) obliczenie liczby znaków różnych od a


c) zamiana znaków różnych od bi B na a,


d) wypisanie tylko tych znaków, które są różne od s


e) obliczenie liczby znaków różnych od d, które mają numer podzielny przez 3


f) zamiana znaków m na R.


Odpowiedź :

Program w języku C:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

char *zamiana(char *napis, char co, char naco) {

for(int i=0; napis[i] != '\0'; i++) {

 if(napis[i] == co)

  napis[i] = naco;

}

return napis;

}

void bez(char *napis, char bezczego) {

for(int i=0; napis[i] != '\0'; i++) {

 if(napis[i] != bezczego) {

  putchar(napis[i]);

 }

}

}

int ilebez(char *napis, char znak) {

int j = 0;

for(int i=strlen(napis); i>0; i--) {

 if(napis[i] != znak)

  j++;

}

return j;

}

int ile(char *napis, char znak) {

int j = 0;

for(int i=strlen(napis); i>0; i--) {

 if(napis[i] == znak)

  j++;

}

return j;

}

int main() {

char str1[30] = "bardzo przepraszam, Bartek!";

printf("wskaźnik str1: %s\n", str1);

printf("str1 ma %d znaków\n", strlen(str1));

printf("a) str1 ma %d znaków 'd'\n", ile(str1, 'd'));

printf("b) str1 bez żadnych 'a' ma %d znaków\n", ilebez(str1, 'a'));

printf("c) zamiana w str1 z 'B' na 'a'\n");

zamiana(str1, 'B', 'a');

printf("wskaźnik str1: %s\n", str1);

char str2[30] = "kamil slimak";

printf("\nwskaźnik str2: %s\n", str2);

printf("d) wskaźnik str2 bez żadnych 's': ");

bez(str2, 's');

printf("\nf) zamiana w str2 'm' na 'R'\n");

zamiana(str2, 'm', 'R');

printf("wskaźnik str2: %s\n", str2);

return 0;

}

PS. Nie zrozumiałem podpunktu e ale reszta jest zrobiona.