Char parametresine int eklemek

Başlatan sfiber, 17 Eylül 2015, 19:42:04

sfiber

Arkadaşlar elimde şöyle bir fonksiyon var.
void USART_Puts(USART_TypeDef* USARTx,char* s)
	{
	while(*s)
		{
		while(!(USARTx->SR &0x00000040));
			
			USART_SendData(USARTx,*s);
			s++;
			
		}
	}


ve şöyle de bir değişkenim.
char* cmd;


ben burda bir stringin uzunluğunu alıp sonra bunu başka bir stringin arkasına eklemeye çalıştım ve sonrada  bunu yollamayı denedim ama olmadı.Fonksiyonlarım şu oldu.

                cmd = "AT+CIPSEND=";
		cmd += strlen("GET /update?api_key=HW48BIROS6NQX008&field1=24"); 
		Delay(0xFFFFFF); 
		USART_Puts(USART1,cmd);

USART_Puts(USART1,"cmd"); şeklinde yollayamıyorum asıl bilgiyi.
Benim burda cmd bilgisini Usart_Puts a koymam için ne yapmam lazım.Umarım anlatabilmişimdir.

pea

Burada cmd, char gösteren bir adres. (Char Pointer) Yaptığınız şey yanlış yani.
strlen de string uzunluğu döndürür.

strcat kullanmayı deneyebilirsiniz.
strcat(cmd, "eklenecek yazi");
yolla(cmd);

gibi.

Bu arada cmd'nin gösterdiği char dizisi(string) yeterli büyüklükte olsun. Ya da realloc, dinamik boyut değiştirme gibi işlemlerle uğraşmanız gerekir.

sfiber

@pea hocam o zaman tanımlamaları nasıl yapıcam.char mı olucak direk.

pea

@sfiber
char cmdString[50]; ya da sınırını aşmayacağınız bir boyutta char dizisi oluşturabilirsiniz.
http://www.tutorialspoint.com/c_standard_library/string_h.htm
strcpy ve strcat fonksiyonlarına bir göz atın.

Bu arada başlıkta int eklemek demişsiniz de, sorunuzda int göremedim.