PDA

View Full Version : سوال: چگونه به جای فاصله در یک رشته کلمه "blank"چاپ کنیم؟



seven0721
جمعه 29 آذر 1392, 15:05 عصر
با عرض سلام وخسته نباشید خدمت دوستان عزیز:
چطوری یک رشته را بگیریم وبه جای فاصله های ان کلمه "blank"چاپ کنیم؟(در زبان C++)
مانند:
this is a test.
خروجی:thisblankisblankbablanktest.
باتشکر .
ممنون میشم که خیلی فوری بهم جواب بدید بازم ممنون.

aliphp1
جمعه 29 آذر 1392, 15:37 عصر
سلام اگه با برنامه نویسی می خوایم انجام بدین لطفا زبانی که می خواین استفاده بشه رو بگین در غیر این صورت اگه فقط قصد تون تغییر توی یک یک متنی که موجود دارین هست می تونین خیلی راحت متن تون رو با توت پد باز کنین بعد توش یک فاصله رو انتخاب و کپی کنید بعد ctrl+H رو بزنید و توی تکست باکس اولی فاصله ای که کپی کرده بودنی پیست کنین و توی دومی متن جایگزین رو بزین و ریپلیس کنین

seven0721
جمعه 29 آذر 1392, 21:41 عصر
سلام دوست عزیز :
من میخام در زبان C++ رشته ای را بگیرم وبه جای فاصله "blank"چاپ کنم چطوری میتونم کد این برنامه رو بنویسم؟؟؟؟؟؟
ممنون میشم که کمکم کنید باتشکر فراوان!!!!!

Ananas
دوشنبه 02 دی 1392, 18:40 عصر
سلام.
بعضی صحبت ها رو تو پیام خصوصی هم میتونی بگید. لزومی نداره اینجا رو پر کنید از پست های اضافی.
کدی برای این کار بدون استفاده از string:

char * InsertSpaceStr(char ** p_out, char * p_str, char * p_addStr)
{
int src_str_length = 0;
int space_count = 0;
while (p_str[src_str_length] != char(0))
{
if (p_str[src_str_length] == ' ')
space_count++;
src_str_length++;
};
int add_str_length = strlen(p_addStr); // 'b', 'l', 'a', 'n', 'k'
int my_str_length = ((src_str_length - space_count) + space_count * add_str_length);
*p_out = (char *)malloc(sizeof(char) * my_str_length);
int i = 0;
int i_source = 0;
while (i < my_str_length)
{
if (p_str[i_source] == ' ')
{
for (int j = 0; j < add_str_length; j++)
{
(*p_out)[i] = p_addStr[j];
i++;
};
i_source++;
}
else
{
(*p_out)[i] = p_str[i_source];
i++;
i_source++;
};
};
(*p_out)[i] = char(0);
return (*p_out);
};

نمونه ی استفاده:

char * srcstr = "mohammad qadiany MHD_1392";
char * addstr = "---";
char * outstr;
InsertSpaceStr(&outstr, srcstr, addstr);
MessageBoxA(0, outstr, "", 0);