C-ben van olyan funkció ami minden x karaktert lecserél y karakterre?
Pl van egy string "teszt1 teszt2" és a "t"-ket leszeretném cserélni "v"-re ("veszt1 veszt2").
Erre van valami alap c funkció vagy saját megoldást kell hozzá írni?
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void char_replace(char* str, char to_find, char replace_with) {
.. if (str == NULL)
.. .. return;
.. char* match;
.. while ((match = strchr(str, to_find)) != NULL) {
.. .. *match = replace_with;
.. }
}
int main() {
.. char str[] = "ez egy teszt szoveg";
.. char_replace(str, 'e', 'z');
.. puts(str);
..
.. return EXIT_SUCCESS;
}
Nagyon nem optimális megoldás, de működik és szerintem átlátható is.
// chFrom -> chTo csere a pstr által mutatott sztringben
void replaceCh(char *pstr, char chFrom, char chTo) {
_char *pch = pstr;
_while (*pch) {
__if (*pch==chFrom) *pch=chTo;
__pch++;
_}
_return;
}
#4 voltam, kis kiegészítés:
A while feltétele egyben a nulla string vizsgálat is. A pch pointert tolja végig a teljes szövegen, az alapján vizsgál és azt használva cserél. Amúgy nem hív semmilyen külső függvényt, villámgyorsan lefut. (Hacsak el nem gépeltem valamit.)
#6: pedig azt csinálja, ami a kérdésben van.
Persze az igaz, hgoy nem azt csinálja mai a _példában_ van. Csak nem tudjuk, hogy ha az igaz, akkor mi a feladat.
Minden szó első megfelelő betűjét cserélni? Minden szó első betűjét cserélni, ha az a megadott? De szerintem csak elrontotta a példát...
Valóban elrontottam a példát elnézést.
A megoldás nem "veszt1 veszt2" lenne hanem "veszv1 vesz2" az 5. "t"-t nem vettem figyelembe.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!