Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
#1

Строки - C++

09.11.2010, 15:10. Просмотров 455. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

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

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

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
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 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 21:20  [ТС] #3
гм. А если стоит ... мне его не надо заменять а только одну точку! И вторым заданием, которое я хотел сделать на основе этого: ... заменить на ;

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

Добавлено через 4 часа 12 минут
Ну помогитеееее!!!!
0
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
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 / 1
Регистрация: 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
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
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 / 1
Регистрация: 17.10.2010
Сообщений: 247
10.11.2010, 16:37  [ТС] #7
Спасибо огромнейшее!!!
0
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
10.11.2010, 17:37 #8
Пожалуйста!
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 17:37
Привет! Вот еще темы с ответами:

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

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

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2010, 17:37
Ответ Создать тему
Опции темы

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