Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2012, 14:06   #1
Winsic
 
Регистрация: 25.03.2012
Сообщений: 3
По умолчанию Символьная строка

/* Дана символьная строка. Написать программу, которая заменяет каждую из латинских букв этой
строки на две звездочки.*/

Код:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
void Vstavka(char *s)
{
int r=0,w;
char *s1,*s2,*tek,*i;
s1=s2=NULL;
while(*s)
if (*s==isalpha(*tek))
    {
    s1=s+1;
    tek=s+1;
    for(r=0;*tek&&isalpha(*tek);tek++,r++);
      {
      s2=tek;
      i=strlen(s)+s;
      for(;i>s1;i--)
      *(i+r)=*i;
      for(w=0,s1=s2-r;w<r*2;w++,s1++)
      *s1='**';
      s=tek+1;
      }
    else
    s++;
    }
else
s++;
}
main()
{
char *str;
system("cls");

puts("Введите строку: \n");
gets(str);
Vstavka(str);
printf("Строка после вставки:\n");
puts(str);
getch();
}
Добрый день, поправьте где ошибся

Последний раз редактировалось ACE Valery; 13.05.2012 в 15:37.
Winsic вне форума Ответить с цитированием
Старый 13.05.2012, 15:38   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

В чем ошибка состоит?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 14.05.2012, 07:54   #3
Winsic
 
Регистрация: 25.03.2012
Сообщений: 3
По умолчанию

не работает, наверняка где-то неправильно
Winsic вне форума Ответить с цитированием
Старый 14.05.2012, 08:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мне думается что тут всю программу нужно переписывать... ИМХО подход сам не верен
Вот поясню что я имею ввиду:
Код:
char *repl(char *s){
	int c=0,l=0;
	for(int i=0;s[i];i++) if( s[i]>='a' && s[i]<='z' ) c++; else l++;
	char *a=new char[c*2+1+l];
	for(int i=0,k=0;s[i];i++){
		if( s[i]>='a' && s[i]<='z' ){
			for(int j=0;j<2;j++) a[k++]='*';
		} else a[k++]=s[i];
	}
 a[c*2+l]=0;
 return a;
}

int _tmain(int argc, _TCHAR* argv[])
{
 char *s="hello 1 world";
 char *s2=repl(s);
 printf("%s",s2);

 delete s2;
getchar();
return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 14.05.2012 в 09:24.
Stilet вне форума Ответить с цитированием
Старый 14.05.2012, 09:02   #5
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Код:
#include <iostream>
#include <string>
#include <cctype>

int islatin(char ch)
{
   ch = tolower(ch);
   return ch >= 'a' && ch <= 'z'; 
}

int main()
{
   setlocale(LC_ALL, ""); 
   std::string str = "asd123фыв";
   std::cout << str << std::endl;
   for (int i = str.length() - 1; i >= 0; --i)
     if (islatin(str[i]))  
     {
        str.erase(i, 1);
        str.insert(i, "**");
     }    
   std::cout << str << std::endl;
   system("pause");
   return 0;  
}
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
символьная строка venel Помощь студентам 1 27.02.2012 00:50
символьная строка l0lo Общие вопросы C/C++ 4 24.12.2011 23:30
Дана символьная строка и символ. OoDarK Помощь студентам 8 22.12.2011 22:07
Символьная строка содержит слова, разделенные пробелами. Найти все слова-палиндромы (Паскаль) sashunechka Помощь студентам 4 18.05.2011 21:45
Символьная строка.(язык C) Иван_Секретарев Помощь студентам 0 18.12.2009 23:07