Определить длину строки и количество букв "а" в ней - C (СИ)
Формулировка задачи:
Помогите создать программу:
В ней нужно:
1)ввести фамилию, имя и отчество как одно данное строкового типа;
2)определить длину строки и количество букв "а" в ней.
3)Изъять все буквы "а" и "о" из фамилии.
Первые два задания сделал. Вот с 3-тим проблемы. Помогите пожалуйста, вот код к первым двум
#include "stdafx.h"
#include <iostream.h>
#include <locale.h>
#include <string.h>
#include <cstring.h>
using namespace std;
void main(void)
{
int a=0, count=0, p=0, c=0;
cout << "Enter data: ";
string str;
getline (cin, str);
for (int i = 0; i<str.length(); i++)
{
if ((str[i]=='A') || (str[i]=='a'))
{
a++;
}
count++;
}
cout << "Count of string: " << count << endl;
cout << "Number of 'a' cymbols: " << a << endl;
//место для третьего задания.
system("pause");
}Решение задачи: «Определить длину строки и количество букв "а" в ней»
textual
Листинг программы
char *ptr=str;
for(;*str!=NULL;str++)
{
if(*str=='a'||*str=='o')
{ char *zam=str
while(*zam='\0')
{*zam=*(zam+1)
zam++;
}
}
}
Объяснение кода листинга программы
В данном коде выполняются следующие действия:
- Переменная
ptrинициализируется значениемstr. - Происходит цикл, который выполняется до тех пор, пока
*strне станет равнымNULL. - Внутри цикла проверяется, является ли текущий символ 'a' или 'o'.
- Если символ является 'a' или 'o', то выполняется следующий блок кода.
- Переменная
zamинициализируется значениемstr. - Происходит цикл, который выполняется до тех пор, пока
*zamне станет равнымNULL. - Внутри цикла значение
*zamзаменяется на значение*(zam+1). - Переменная
zamувеличивается на 1. - После выхода из внутреннего цикла, переменная
zamувеличивается на 1. - После выхода из внешнего цикла, значение
*strувеличивается на 1. Таким образом, в результате выполнения данного кода будет определена длина строки и количество буквав ней.