نمایش نتایج 1 تا 6 از 6

نام تاپیک: اشاره گری از رشته ها

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار emadfa
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    رشت
    پست
    193

    اشاره گری از رشته ها

    ابتدا سوالم را می پرسم و سپس کد خودم رو می زارم ببینید.
    در قسمتی از برنامم یک رشته ساختم از نوع string که می تونه شامل صدها کلمه باشه! ( چون این رشته اطلاعات یک فایله! ) حالا نیاز دارم که تعداد کلمات این رشته را در یک عدد و همه کلمات این رشته رو در یک اشاره گر رشته ذخیره کنم. ( چون تعداد کلمات معلوم نیست. ) فرض می کنیم ملاک تشخیص هر کلمه فقط یک Space باشه. حالا می مخوام با تشخیص هر Space حروق قبل از این Space تا Space قبلی در قسمتی از اشاره گر ذخیره بشه. با این کار همه کلمات یک متن رو جدا کرده و در یک اشاره گر ذخیره کرده و می تونم به اون ها دسترسی داشته باشم. برای فهمیدن تعداد کلمات هم الگوریتم رو نوشتم. البته برای ذخیره کردن خود کلمات چیزی که گفتم الگوریتم خودمه. اگه الگوریتم بهتری دارید لطفا بگید.
    برنامه ای که نوشتم در هنگام اجرا crash میشه که دلیلش تابع CountWord هست. این برنامه رو با کامپایلر Qt نوشتم. لطفا کمکم کنید.
    فایل Process_Core.h
    #ifndef PROCESS_CORE_H
    #define PROCESS_CORE_H
    #include <string>
    using namespace std;
    class Process_Core
    {
    public:
    Process_Core(string);
    string getString();
    int CountWord();
    private:
    string myStr;
    const char *Array;
    int num;
    string *nor;
    string oneStr;

    };

    #endif // PROCESS_CORE_H



    فایل Process_Core.cpp
    #include "process_core.h"
    Process_Core::Process_Core(string str)
    {
    myStr = str;
    }
    string Process_Core::getString()
    {
    return myStr;
    }
    int Process_Core::CountWord()
    {
    num = 0;
    oneStr = "";
    int m;
    Array = myStr.c_str();
    for(int i = 0 ; Array[i] ; i++)
    {
    if(Array[i] == ' ' && Array[i-1] != ' ')
    {
    num++;
    if(num == 1)
    m = i + 1;
    else
    {
    int n = i - 1;
    for(int j = m ; m <= n ; j++ )
    oneStr += Array[j];
    *nor = oneStr;
    *nor++;
    int m = i + 1;
    }
    }
    }
    num++;
    return num;
    }
    آخرین ویرایش به وسیله emadfa : جمعه 18 تیر 1389 در 20:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •