الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]استفسار عن علامة التنصيص في C++ ..~

مغلق
بدأه الحاسوبجية ..~ في 15 مايو 2012 · 8 رد · 2,886 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم والرحمة ..~

صباح ||مساء الخير والبركة

أنا عندي استفسار آخر في c++ ^ــ^

لو سمتحم أريد أن أعلم الطريقة التي لا يتم بها طباعة علامة التنصيص ""

مثلاً :

طلبت من المستخدم يدخل أي نص وأدخل النص بعلامة تنصيص مثلا "my name is Ahmad "

وفي أمر آخر أريدهـ أن يخرج النص بدون علامة تنصيص فيكون بهذا الشكل : my name is Ahmad

مع العلم إني معرفة كـ string

وجزآكم الله كل خير ^^ ..

تم تعديل هذه المشاركة بواسطة الحاسوبجية ..~ في 15 مايو 2012 في 01:13

#2

استخدمي "آنتي سلاش" قبل علامة التنصيص, هكذا :

#include<iostream>
using namespace std;
int main()
{
    string name = "Arab \" Team";
    cout<<name;
    return 0;
}
#3

جزآكـ الله خيراً

لكن أقصد في سؤالي العكس

إذا المستخدم أدخل النص بهذا الشكل "MY NAME IS AHMAD" ,, أدخلها بإشارة تنصيص

وأريد من البرنامج أن يخرج النص بدون إشارة التنصيص ,, فيخرجها هكذا MY NAME IS AHMAD


cout<< " enter your name plase::: ";
cin >> l;

cout<<endl;
for(int i=0;i<50;i++)
if(l=='"'||l==' ')
continue;
else
cout<<l;

هذهـ إحدى المحاولات لم تنجح معي بتاتا في البرنامج لأنه معقد نوعا ما ولم يفلح أبدا وأود بـ كود أبسط وأسهل جدا في استخدامهـ

أتمنى من لديه خبرة في المكتبات أن يدلني على اسم دالة تساعدني أو الكود

وجزاكم الله خيرا

تم تعديل هذه المشاركة بواسطة الحاسوبجية ..~ في 15 مايو 2012 في 01:37

1
#4

تفضلي :

#include<iostream>
using namespace std;
int main()
{
    string name;
    cout<<"your name : ";
    getline (cin , name,'\n');
    for(int i = 0;i <= name.length();i++) {
        if(name != '\"')
           cout<<name;
        else
           continue;
    }
    return 0;
}

أرجو لك التوفيق.

تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 15 مايو 2012 في 01:59

1
#5

انظري لهذا المثال (بتحريك المؤشر) :

#include<iostream>
#include<string.h>
using namespace std;

int main(void) {

    char *name = new char[256];
    int is_shifted  = 0;
    cout << "Enter your name: ";

    cin.width(255);
    cin  >> name;

    if( *name == '"' ) {
        *name++;
        is_shifted  = 1;
    }

    if( *(name+ strlen(name) - 1) == '"' )
        *(name+ strlen(name) - 1) = '\0';

    cout << name << endl;

    if( is_shifted == 1 )
        *name--;

    delete name;
    return(0);
}

$ ./a.out Enter your name: ABC  
ABC
$ ./a.out 
Enter your name: "ABC
ABC
$ ./a.out 
Enter your name: "ABC"
ABC
$
#6

من الاشياء الجميلة التى تعلمناها من مشرفنا القدير\محمد علاء الدين:

أستخدام مكتبه القوالب القياسية لحذف كل علامات التنصيص فى النص المدخل:

الكود:

#include <algorithm>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cout << "Please enter a string containing \"double-quotes\"\n> " << flush;
    getline(cin, s);
    // Remove all double-quote characters
    s.erase(remove(s.begin(), s.end(), '\"'), s.end()   );

    cout << s << endl;
    return 0;
}

المخرجات:

Please enter a string containing "double-quotes"
> "It is from nice things that we learn from "S.V Mohammed Alaa"
It is from nice things that we learn from S.V Mohammed Alaa

RUN SUCCESSFUL (total time: 57s)

ومن الجميل أيضا استخدام الامكانيات المتاحة بداخل الفئة string نفسها لحذف اول واخر علامة تنصيص فقط:

كود:

if ( s.front() == '"' ) {
    s.erase( 0, 1 ); // erase the first character
    s.erase( s.size() - 1 ); // erase the last character
}

هذا والله من وراء القصد

تم تعديل هذه المشاركة بواسطة AudaNix في 15 مايو 2012 في 07:32

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#7

هل المطلوب هو "إخراج" النص بدون علامات التنصيص أم "حذف" علامات التنصيص من النص ؟

#8
أحمد الشنقيطي كتب:

هل المطلوب هو "إخراج" النص بدون علامات التنصيص أم "حذف" علامات التنصيص من النص ؟

لقد ذكرنا ما طلبة السائل الى جانب افادة بسيطة الى قارئ المشاركة.

ما يهم صاحب السؤال الحصول على اجابة واحيانا الاستزادة وخصوصا لو كانت الافكار تتلاصق.

ما يهم القارئ(الزائر)هو الالمام بكل جوانب الموضوع وحبذا أن كان بمشاركة واحدة ..

والله من وراء القصد

تم تعديل هذه المشاركة بواسطة AudaNix في 15 مايو 2012 في 15:20

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#9
أحمد الشنقيطي كتب:

تفضلي :

#include<iostream>
using namespace std;
int main()
{
    string name;
    cout<<"your name : ";
    getline (cin , name,'\n');
    for(int i = 0;i <= name.length();i++) {
        if(name != '\"')
           cout<<name;
        else
           continue;
    }
    return 0;
}

أرجو لك التوفيق.

شكرا جزيلا ما قصرت أستاذي أفدتني كثيراً =)

Mr.B كتب:

انظري لهذا المثال (بتحريك المؤشر) :

#include<iostream>
#include<string.h>
using namespace std;

int main(void) {

    char *name = new char[256];
    int is_shifted  = 0;
    cout << "Enter your name: ";

    cin.width(255);
    cin  >> name;

    if( *name == '"' ) {
        *name++;
        is_shifted  = 1;
    }

    if( *(name+ strlen(name) - 1) == '"' )
        *(name+ strlen(name) - 1) = '\0';

    cout << name << endl;

    if( is_shifted == 1 )
        *name--;

    delete name;
    return(0);
}

$ ./a.out

Enter your name: ABC

ABC

$ ./a.out

Enter your name: "ABC

ABC

$ ./a.out

Enter your name: "ABC"

ABC

$

Mr.B

جزآآك الله كل خير أستاذي وآضحة الأكواد جداً ما قصرت جعلو في موازين حسنآتكـ =)

AudaNix كتب:

من الاشياء الجميلة التى تعلمناها من مشرفنا القدير\محمد علاء الدين:

أستخدام مكتبه القوالب القياسية لحذف كل علامات التنصيص فى النص المدخل:

الكود:

#include <algorithm>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cout << "Please enter a string containing \"double-quotes\"\n> " << flush;
    getline(cin, s);
    // Remove all double-quote characters
    s.erase(remove(s.begin(), s.end(), '\"'), s.end()   );

    cout << s << endl;
    return 0;
}

المخرجات:

Please enter a string containing "double-quotes"
> "It is from nice things that we learn from "S.V Mohammed Alaa"
It is from nice things that we learn from S.V Mohammed Alaa

RUN SUCCESSFUL (total time: 57s)

ومن الجميل أيضا استخدام الامكانيات المتاحة بداخل الفئة string نفسها لحذف اول واخر علامة تنصيص فقط:

كود:

if ( s.front() == '"' ) {
    s.erase( 0, 1 ); // erase the first character
    s.erase( s.size() - 1 ); // erase the last character
}

هذا والله من وراء القصد

AudaNix

شكراً لكـ أستاذي الأكواد بسيطة الأستخدام ونجحت في برنامجي شكراً جزيلا جعلهـ الله في موازين حسنآتكـ جزآكـ الله خير =))

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…