PDA

View Full Version : بازگرداندن تعداد یک کاراکتر در یک رشته



JavadAmeri
دوشنبه 26 خرداد 1393, 22:04 عصر
چگونه میشه فهمید چند کاراکتر در یک رشته هست؟
مثلا تابعی که ورودی زیر با بگیرد و خروجی بدهد.
input>> string="dfsdfsdffsdf" char='f'
output=>> 4


int func(string a,char b)

{
...
return x;
}

hadi0x7c7
دوشنبه 26 خرداد 1393, 22:47 عصر
if(s[i] == 'f')

JavadAmeri
سه شنبه 27 خرداد 1393, 10:11 صبح
این استرینگ هست آرایه که نیست.

rahnema1
سه شنبه 27 خرداد 1393, 11:58 صبح
string a= "Hello";
cout<<a.length();

JavadAmeri
سه شنبه 27 خرداد 1393, 13:54 عصر
دوستان گرامی.من طول رشته رو نمیخوام ها.تعداد تکرار یک کاراکتر خاص در رشته رو میخوام.

rahnema1
سه شنبه 27 خرداد 1393, 16:23 عصر
شما باید هیستوگرام را به دست بیاری

#include <string>
#include <iostream>
using namespace std;
int main()
{
string reshte="sdfnnvknkrhrj8745";
unsigned int hist[127]={};
for(int i=0;i<reshte.length();i++)
hist[reshte[i]]++;
for(int i=0;i<127;i++)
cout<<char(i)<<","<<hist[i]<<endl;
}

amirtork
پنج شنبه 29 خرداد 1393, 01:06 صبح
سلام،
دوست عزیز، برای رشته ها یا همون string عملگر یا همون operator [] تعریف شده هست و می تونید مثل آرایه ها از اون استفاده کنید. تنها تفاوتی که با آرایه ها دارن اینه که توی حلقه یا همون Loop باید طول رشته رو به صورت داینامیک(dynamic) بدست بیارید که برای اینکار هم میتونید از تابع از پیش تعریف شده ی length() در ساختمان string استفاده کنید.
طبق صحبت هایی که در بالا انجام دادم، کد این بخش از برنامتون به شکل زیر خواهد بود:


#include <iostream>
#include <cstring>


using namespace std;


int main()
{
string str;
cin>>str;
int j = 0;
for(int i = 0 ; i < str.length(); i++)


if(str[i] == 'f')


j++;
cout<<j<<endl;
cin.ignore();
cin.get();
return 0;
}