Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
1

Строки

09.11.2010, 15:10. Просмотров 484. Ответов 7
Метки нет (Все метки)

Надо программа, которая . заменяет на ... у меня получилось только это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <iostream>
#include <cctype> 
#include <string>
using namespace std;
 
int main()
{ setlocale (LC_ALL, "Russian");
char s[100];
cout<<"Введите ваш текст не более 100 знаков:"<<endl;
for(int i=0;i<100;i++){ cin>>s[i];
for(i=0;i<100;i++)
    if(s[i]='.' && s[i+1]!='.')// если точка одна
а как теперь мне на место одного знака вставить 3, не затерев при этом следующие элементы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2010, 15:10
Ответы с готовыми решениями:

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк
Есть динамический массив строк. Заполняется, т.е. размер его уже известен...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2
Сформировать динамический двумерный массив, заполнить его случайными числами и...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести...

Функция перезаписывает символы строки заданным количеством символов другой строки
Программа работает. Но не совсем правильно. В конечной строке появляются...

7
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
09.11.2010, 16:26 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <conio.h>
int main(void)
{
  char str[32] = "Hello, World", result[64], *pc;
  /* Заменяем букву W на три точки */
  pc = strchr(str, 'W');
  *pc++ = '\0';
  strcat(strcat(strcpy(result, str), "..."), pc);
  
  printf(result);
  getch();
  return 0;
}
Функция strchr
#include <string.h>
char *strchr(const char *str, int ch);

Функция strchr() возвращает указатель на первое вхождение младшего байта параметра ch в строку str. Если указанный символ не найден, возвращается нулевой указатель.


Функция strcat.
#include <string.h>
char *strcat(char *str1, const char *str2);

Функция strcat() присоединяет к строке str1 копию строки str2 и завершает строку str1 нулевым символом. Конечный нуль-символ, первоначально завершающий строку str1, перезаписывается первым символом строки str2. Строка str2 при этом не изменяется. Если заданные массивы перекрываются, поведение функции strcat() не определено.

В версии С99 к параметрам str1 и str2 применен квалификатор restrict.

Функция strcat() возвращает значение указателя str1.

Помните, что при выполнении операций с массивами символов контроль нарушения их границ не выполняется, поэтому программист должен сам позаботиться о достаточном размере массива str1, позволяющем вместить как его исходное содержимое, так и содержимое массива str2.



Функция strcpy
#include <string.h>
char *strcpy(char *str1, const char *str2);

Функция strcpy() копирует содержимое строки str2 в строку str1. Параметр str2 должен указывать на строку с завершающим нулевым символом. Функция strcpy() возвращает значение указателя str1.

В версии С99 к параметрам str1 и str2 применен квалификатор restrict.

Если символьные массивы str1 и str2 перекрываются, поведение функции strcpy() не определено.
1
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 21:20  [ТС] 3
гм. А если стоит ... мне его не надо заменять а только одну точку! И вторым заданием, которое я хотел сделать на основе этого: ... заменить на ;

Добавлено через 5 минут
а еще работает до первой точки, тоесть все остальные не проверяет... и работает до пробела... идей у меня вообще нет, спасайте

Добавлено через 4 часа 12 минут
Ну помогитеееее!!!!
0
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
09.11.2010, 22:59 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h>
int main(void)
{
  char s[128], cpy[128], *pc;
  int i, len;
  printf("Vvedite stroku: ");
  gets(s);
  for(i = 0; s[i] != '\0'; i++)
    if( s[i] == '.' )
    {
      pc = &s[i];
      *pc++ = '\0';
      strcat(strcat(strcpy(cpy, s), "..."), pc);
      strcpy(s, cpy);
      i += 2;
    }
  printf("Result: %s", s);
  getch();
  return 0;
}
1
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
10.11.2010, 15:00  [ТС] 5
неловко просить, но приведеная выше программа заменяет ... на ........ изменив условие ифа:
C++
1
if( s[i] == '.' && s[i+1]!='.')
выдает 5 точек, а если
C++
1
if( s[i] == '.' && s[i+1]!='.'&& s[i+2]!='.')
выдает 5 точек. Как избавиться от этой проблемы?
короче, любое колличество точек программа должна заменить на ... но не делать при этом ..... или ........
Буду очень благодарен!
0
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
10.11.2010, 16:28 6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h>
int main(void)
{
  char s[128], cpy[128], *pc;
  int i, len;
  printf("Vvedite stroku: ");
  gets(s);
  for(i = 0; s[i] != '\0'; i++)
    if( s[i] == '.' )
    {
      pc = &s[i];
      while(*pc == '.') *pc++ = '\0';
      strcat(strcat(strcpy(cpy, s), "..."), pc);
      strcpy(s, cpy);
      i += 2;
    }
  printf("Result: %s", s);
  getch();
  return 0;
}
1
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
10.11.2010, 16:37  [ТС] 7
Спасибо огромнейшее!!!
0
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
10.11.2010, 17:37 8
Пожалуйста!
1
10.11.2010, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 17:37

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся...

Прибавить ко всем элементам каждой строки максимальное значение этой строки
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив,...

Как считать строки из файла, если там больше одной строки?
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru