program do dodawania tekstu

program do dodawania tekstu
K1
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:1
0

Potrzebuje bardzo pilnie pomocy
Szukam kogoś kto mógłby napisać dla mnie program w języku C który będzie dodawał tekst do drugiego bez użycia funkcji strncat.
Wiem że to niezbyt w porządku że proszę o cały kod ale moje umiejętności programowania pozostawiają wiele do życzenia, a program ten potrzebny jest mi do zaliczenia przedmioty który nie jest że tak powiem moim kierunkowym jednak zaliczyć go muszę dlatego bardzo proszę o pomoc.

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Lokalizacja:Szczecin
1

Oczekujesz pomocy czy rozwiązania za Ciebie?

  1. Jeśli pomocy: pokaż kod, staraj się zastosować do [Dlaczego nikt nie odpowiada w moim wątku][1]
  2. Jeśli wykonania za Ciebie: [Ogłoszenia drobne][2] (jestem w stanie wykonać zadanie za zaledwie 250zł)
    [1]: Dlaczego nikt nie odpowiada w moim wątku?
    [2]: https://4programmers.net/Forum/Og%C5%82oszenia_drobne

A9
Zaledwie? Wydaje mi się, że to trochę dużo jak na program do wykonania w 10 minut :P
kq
Moja oferta - moja stawka. Jeśli @koczan123 chce usługi, to się godzi na cenę, negocjuje lub szuka alternatywy. Jeśli chce użyć forum do jego głównego zastosowania - wspierania nauki i rozwiązywania problemów programistycznych - niech wykaże minimum chęci.
M1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:20
0

Szukaj implementacji funkcji strncat w google
"strncat implementation"
u mnie 4 link od gory, copy paste i 250 zostaje w kieszeni

ew uzyj strcat

edytowany 1x, ostatnio: Madek123
A9
Przecież napisał, że nie możne użyć strcat.
M1
napisal ze nie moze strncat :p
kq
Napisał, że nie może użyć strncat, o strcat nic nie pisał.
mwl4
Ani o sprintf nic nie napisał.
0

jako taki upośledzony możesz sobie zrobić funkcję, co będzie zwracać pierwszy i drugi string tak jakby był jednym, a będzie funkcją, co przyjmie kilka stringów wtedy za jednym zamachem to zrobisz.

A wygląda to w środku tak, że printf pierwszy print drugi i nikt nic nie wie, ale na ekranie jest to czego oczekiwałeś.
Łączenie to nic innego jak występowanie jeden bajt po drugim szeregowo, ale ja tak tylko sądzę, bo tak naprawdę to nie ma takiej definicji.

Żałuję, że nie poszedłem na studia, macie takie proste zadania, a każdy mówi, że jest ciężko.
Nawet upośledzony dałby radę jakby przeczytał ze zrozumieniem, albo chociaż by spróbował rozwiązać.

Potat0x
jest ciężko, ale z analizy.
KO
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:3
0
kq napisał(a):

Oczekujesz pomocy czy rozwiązania za Ciebie?

  1. Jeśli pomocy: pokaż kod, staraj się zastosować do [Dlaczego nikt nie odpowiada w moim wątku][1]
  2. Jeśli wykonania za Ciebie: [Ogłoszenia drobne][2] (jestem w stanie wykonać zadanie za zaledwie 250zł)
    [1]: Dlaczego nikt nie odpowiada w moim wątku?
    [2]: https://4programmers.net/Forum/Og%C5%82oszenia_drobne

Mam taki program jednak zamiast łączyć tekst z tekstem drugiej tablicy on wyśiwetla tylko ten z drugiej

Kopiuj
#include <stdio.h>

void strncat (char *s, char *t, int n) {

s = (char*)malloc (strlen(t) + 1);


while (*s != '\0') // move pointer
    s++;

int count = 0;

while (++count <= n)
    *s++ = *t++;

*(++s) = '\0';
}

int main () {
char *t = " Bluish";
char *s = "Red and";

 printf ("Before concat: %s\n", s);

strncat(s, t, 4);


printf ("After concat: %s\n", s);

return 0;
}
edytowany 2x, ostatnio: kq
Potat0x
  • Rejestracja:prawie 9 lat
  • Ostatnio:23 dni
  • Postów:370
0

Jeżeli nie masz w zadaniu, żeby używać wskaźnikologii, to używaj indeksów. Pierwsze co robisz w swojej funkcji, to niszczysz jednego ze stringów mallocem. A pamięć trzeba zwolnić. Nie komplikuj sobie życia.

Kopiuj
void strncat2(char *s, char *t, int n)
{
    int start = 0, i = 0;

    while(s[start++] != '\0');//sprawdzamy jak dlugi jest pierwszy wyraz

    start -= 1; //nadpiszemy w docelowym stringu znak konca wyrazu

    while(t[i] != '\0' && i < n)
    {
        s[start++] = t[i++];//dopisujemy znak po znaku z t do s tak dlugo, az t sie skoczy lub dopisalismy juz wystarczajaco duzo
    }

    s[start] = '\0'; //konczymy stringa
}

/*tak trzeba stworzyc stringi*/
char *t[20];
char *s[20];

strcpy(t, " Bluish");
strcpy(s, "Red and");

Prościej chyba się nie da.

edytowany 1x, ostatnio: Potat0x

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.