C-string, kopiowanie i spacja.

0

Witam
Mam oto taki program :

// stringi 2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include <string.h>

int _tmain(int argc, _TCHAR* argv[])
{
	char wyraz[60]={0};
	char string[1000]={0};
	char x;
	int z;
	for(;;)
	{
	printf("\nPodaj wyraz: ");
	gets(wyraz);
	x=wyraz[0];
	int length = strlen(wyraz);
	wyraz[length+1]=' ';
	strcat(string, wyraz);
	length = strlen(string);
	for(z=0;z<length;++z)
	{
		if(x==string[z]) string[z]='*';
	}
	printf("\nilosc znakow:%d",length);
	printf("\n%s",string);
	}
	_getch();
	return 0;
}

 

Jak wymusić od programu aby przy łączeniu zdań występowała między nimi spacja , niestety obecne rozwiązanie jest nieskuteczne. Proszę o pomoc, pozdrawiam

0

wyraz[length+1]=' ';

może nie działa dlatego że dodajesz spacje za nulem kończącym twój string?

strlen zwraca ci długość stringu bez nula który go kończy, a tablice iteruje się od 0, więc wyraz[strlen(wyraz)] to NULL kończący twoj wyraz a następny element do którego wpisujesz spacje jest już za twoim wyrazem.

0

Dzięki, chodzi. Zapomniałem o tak trywialnej sprawie jaką jest numeracja tablic od zera

1 użytkowników online, w tym zalogowanych: 0, gości: 1