ریورس کردن کلمه ها در یک آرایه کاراکتری بدون استفاده از توابع | c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ریورس کردن کلمه ها در یک آرایه کاراکتری بدون استفاده از توابع | c++

0 امتیاز
سلام من باید برنامه ای بنویسم که کاربر جمله رو وارد می‌کنه اگه کلمه های از اون جمله با حرف کوچک شروع شدن اون کلمه رو ریورس می‌کنه .الگوریتم کار رو بلدم ولی کدشو روهرکاری میکنم نمیشه.یعنی حرف بعد اسپیس باید چک بشه اگه کوچیک بود تا اسپیس بعدی باید ریورس بشه.خستم کرده کمک:(
سوال شده آذر 16, 1397  بوسیله ی carmelo (امتیاز 15)   2 2 2
دوباره باز شد آذر 17, 1397 بوسیله ی farnoosh

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

 اگر مستقیم ببرید تحویل بدید من راضی نیستم .اینو نوشتم که تمرین کنید یه چیزی خودتون یاد بگیرید.

int isLower(char value) {
	return  (value >= 'a' && value <= 'z');
}

void reverseStr(char* str, int start, int end) {
	int len = end - start;
		int half = len / 2;
		for (int i = 0; i <= half; i++) {
			char temp = str[start + i];
			str[start+i] = str[start+len - i -1];
			str[start + len-i -1] = temp;

		}
}
int main()
{
	char str[15] = "hello Dear carmelo";

	if (str == NULL)
		return 0;

	int pos = 0;
	int word = 1;
	if (str[pos] == ' ') word = 0;

	int start = -1;
	if (word)
		start = 0;

	pos++;
	while (str[pos] != NULL) {
		int cur_word = 1;
		if (str[pos] == ' ') cur_word = 0;

		if (word != cur_word) {
			if (word == 1) {
				int is_lower = isLower(str[start]);
				
				if (is_lower)
					reverseStr(str, start, pos);



				
				
			}
			else start = pos;
			word = cur_word;
		}

		pos++;


	}
	if (word == 1) {
		int is_lower = isLower(str[start]);

		if (is_lower)
			reverseStr(str, start, pos);

	}

	printf("%s\n", str);
	

	return 0;
}

 

پاسخ داده شده آذر 17, 1397 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد آذر 14, 1399 بوسیله ی عباس مولایی
...