Строки

  • Автор темы Polly
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

Polly

Гость
#1
Добрый вечер! Нужно из заданной строки выбрать все строчные буквы и поместить их в массив. В чем у меня ошибка?
Код:
int _tmain(int argc, _TCHAR* argv[])
{
char elem,len;
char S[]="BhiDfo";
len=strlen(S);


int i=0,p=0;
elem=0;
for (i=0;i<len;i++)
{
if (S[i]>='a' && S[i]<='z')
{elem++;}

}
char *M;
M=(char*)calloc(elem,sizeof(char));
for (i=0;i<len;i++)
{
if(S[i]>='a' && S[i]<='z')
M[p]=S[i];
p++;
}
for (p=0;p<elem;p++)
printf("%c",M[p]);
в итоге выводится ahia(то есть заменяется заглавная буква маленькой а)
 
R

rrrFer

Гость
#2
Код:
if(S[i]>='a' && S[i]<='z')
M[p]=S[i];
p++;
тут скобочек не хватает
Код:
#include <iostream>
int main() {
char str[] = "BhiDfo", *t;
int num;

num = 0;
for (int i = 0; str[i]; ++i) 
num += str[i] >= 'a' && str[i] <= 'z';
t = new char[num + 1];

num = 0;
for (int i = 0; str[i]; ++i) 
if (str[i] >= 'a' && str[i] <= 'z')
t[num++] = str[i];
t[num] = '\0';

std::cout << t;
delete []t;
return 0;
}
 
Статус
Закрыто для дальнейших ответов.