• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie symfonia - kopiowanie znakow z tablicy do tablicy

0 głosów
256 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez CortezjuszPospolity Obywatel (1,130 p.)

Mam problem z zadaniem z symfonii c++. Do tablicy, która przechowuje już jakiś C-string, mam dokopiować tekst "UWAGA: ". Jeśli w rezultacie powstałby c-string dłuższy niż na to pozwala rozmiar tablicy docelowej, ostatnie trzy możliwe znaki mają być zastąpione trzema kropkami. Potrafię zrobić 'doklejanie' c-stringu, ale nie wiem jak zrobić tę część z trzema kropkami, gdy rozmiar będzie za mały na zmieszczenie stringu. Pomocy :(

Oto mój kod:

#include <iostream>
using namespace std;
char* cat(char* tab, int size);
int main()
{
    const int ArrSize = 50;
    char string1[ArrSize] = "Raz dwa trzy cztery piec szesc siedem ";
    cout << cat(string1, ArrSize) << endl;


    return 0;
}

char* cat(char* tab, int size)
{
    char* pt = tab;
    const char* string2 = "UWAGA: ";

    while (*tab++);
    tab--;

    while (*tab++ = *string2++);

    return pt;

}

 

1 odpowiedź

0 głosów
odpowiedź 19 maja 2016 przez KlataMiLata Bywalec (2,120 p.)
edycja 19 maja 2016 przez KlataMiLata
#include <iostream>
using namespace std;
char* cat(char* tab, int size);
int main()
{
	const int ArrSize = 43;
	char string1[ArrSize] = "Raz dwa trzy cztery piec szesc siedem ";
	cout << cat(string1, ArrSize) << endl;
	return 0;
}

char* cat(char* tab, int size)
{
	char* pt = tab;
	int licznik=0;
	const char* string2 = "UWAGA: ";

	while (tab[licznik]!=0)
	{
 licznik++;
	}
	
	if (size>=licznik+7)
	{
		for (size_t i = 0; i < 7; i++)
		{
			tab[licznik++] = string2[i];
		}
	}
	else
	{
		for (size_t i = 0; i < 7; i++)
		{
			if (licznik >= size)
			{
				for (size_t i = 0; i < 3; i++)
				{
					tab[licznik - i] = '.';
				}
				tab[size+1] = NULL;
				break;
			}
			tab[licznik++] = string2[i];
		}
		
	}
	
	
	return pt;

}

 

Podobne pytania

0 głosów
1 odpowiedź 576 wizyt
0 głosów
1 odpowiedź 729 wizyt
pytanie zadane 12 lutego 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)
0 głosów
3 odpowiedzi 551 wizyt
pytanie zadane 13 kwietnia 2016 w C i C++ przez veryhotshark Obywatel (1,620 p.)

93,778 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...