View Full Version : تعداد تکرار هر حرف در یک رشته
moh.mon
سه شنبه 27 مهر 1389, 07:57 صبح
سلام.
دنبال کد تعداد تکرار هر حرف در یک رشته به زبان c++ می گردم. میشه راهنمایی کنید؟
یعنی وقتی یه رشته رو وارد میکنیم مثل:
abbbbca برنامه تعداد تکرار هر حرف رو برامون مشخص کنه.
tdkhakpur
سه شنبه 27 مهر 1389, 11:17 صبح
خب یک ساختار میسازید با مشخصات خود حرف و تعداد که در نهایت کد زیر ساخته بشه.
الگوریتم به این شکل هست که رشته را از ابتدا اسکن میکنه تعداد حرف را در ساختار مربوط به حرف قید میکنه
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
struct tmpst_
{
char ch;
int count;
};
int ChrCount(struct tmpst_ *ptr, char *str)
{
int c=0;
bool Find;
for( int i=0; i<strlen(str); i++)
{
Find = false;
for( int j=0; j<c && !Find ; j++ )
if( ptr[j].ch == str[i] ){
ptr[j].count ++;
Find = true;
}
if(!Find){
ptr[c].count = 1 ;
ptr[c].ch = str[i];
C++;
}
}
return c;
}
int main()
{
int c, len;
struct tmpst_ *MySt;
char *str={"How are you my friend."};
len = strlen(str);
MySt = new struct tmpst_ [len];
c = ChrCount(MySt, str);
cout <<"\n"<<str;
for( int i=0; i<c; i++)
cout<<"\n"<<"Count of "<<MySt[i].ch<<" is "<< MySt[i].count;
delete [] MySt ;
return 0;
}
البته اگر نمیخواهید از رزرو پویای حافظه استفاده کنید میتوانید آرایه ای از ساختار به اندازه 255 در نظر بگیرید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.