سلام . من چطور می تونم توی برنامه c++ آرایه دو بعدی از نوع char تعریف کرد که وقتی بهش مقدار میدم لازم نباشه تا آخرین مقدار سطر کاراکتر وارد کنم مثلا اگر یک آرایه 20*15 معرفی کردم و خواستم در اولین سطر بنویسم مهتاب آقایی هم فاصله رو قبول کنه و هم بعد از زدن اینتر بقیه آرایه های خالی رو بی خیال بشه و به سطر بعد برای گرفتن آرایه بعدی بره .
ممنون میشم راهنمایی ام کنید.
کاراکتر فاصله جزو مجموعه کاراکتر هایی است که بهشون White-Space می گویند. بیشتر توابع C و ++C کاراکتر های
White-Space رو کاراکتر انتهایی ورودی تفسیر می کنند و اگر بهشون یک رشته ای بدهید که وسط اش کاراکتر فاصله
هست، فقط بخش اول رو دریافت می کنند.
خوشبختانه در ++C توابع استانداردی هم وجود داره که موقع دریافت کردن رشته کاراکتر فاصله رو هم
جزو رشته حساب می کنند، مثلا gets و fgets و getline . این توابع زمانی که کلید Enter رو فشار دادید دریافت کردن
ورودی رو متوقف می کنند. برای توضیحات بیشتر به مبحث زیر مراجعه کنید :
دریافت رشته با scanf بدون فاصله
در مثال زیر 5 سطر (رشته) از کاربر دریافت میشه که هر کدوم می توانند طول متفاوتی تا 25 کاراکتر داشته باشند
(محدودیتی برای وجود کاراکتر فاصله در رشته نیست) و سپس اون 5 سطر دریافت شده رو نشون میده :
کد:
#include <iostream.h>
#include <conio.h>
int main()
{
char a[5][25];
for (int i = 0; i < 5; i++)
gets(a[i]);
for (int i = 0; i < 5; i++)
cout << a[i] << endl;
getch();
return 0;
}