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

симметричность строки на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ в чем дело? http://www.cyberforum.ru/cpp-beginners/thread819974.html
может кто объяснит в чем дело? просто заметил одну особенность, если temp <=8 символам (не считая нулевого в конце), то t выводит с двумя левыми символами в конце, если >8 символов, то всё выводит как надо #include <iostream> void fun(char* p) { char * temp="12345678"; while (*temp) *p++=*temp++;
C++ Чтение 16-и битных слов из бинарника (загрузка Wav) Привет! Загружаю WAV. Данные в файле для формата звуковых данных с дискретностью 16 бит монофонического сигнала хранятся в массиве 16-битовых слов. Вот читаю я заголовок файла, std::fstream fs("1.wav",std::ios::in | std::ios::binary); fs.read((char*)&wav,sizeof(WaveHeader)); А дальше как быть? Если последовательность данных там в 16-и битных словах, как записать команду read хотя бы для... http://www.cyberforum.ru/cpp-beginners/thread819953.html
Простая графическая система C++
Здарова! Решаю задачку: Реализуйте простую графическую систему, используя доступные на вашем компьютере графические средства (если их нет — используйте ASCII представление, где пиксел, это знакоместо): Window(n,m) создает на экране область размером nxm. Координаты декартовы. Окно w типа Window имеет координаты w.current(). Начальные координаты равны Point(0,0). Координаты можно задать с помощью...
C++ исправьте ошибку (изменить регистр букв в файле)
Здравствуйте! Задача - заменить все строчные буквы следующие после точки или точка+пробел на заглавные. Попыталась сделать с помощью toupper, но ничего не выходит. Может можно каким-нибудь другим способом? В программировании недолго,не судите строго,если ошибки глупые. Прилагаю код программы (в ней еще заменяются двойные пробелы на одиночные, эта часть работает исправно). Код замены регистра...
C++ Как можно получить все подмножества множества? http://www.cyberforum.ru/cpp-beginners/thread819929.html
Например из множества, представлнного массивом должны получиться подмножества:
C++ Метод Зейделя для СЛАУ Написала код по Методу Зейделя, но НИКАК НЕ ПОЛУЧАЕТСЯ сделать так, чтобы выводило все итерации на экран!:(:(:( Прошу помочь! Код: #include<iostream> #include<cmath> using namespace std; #define N 100 void main() { int i,j,n,k=0; подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
27.03.2013, 15:28     симметричность строки на С++
Допиливайте как желаете:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cstring>
 
// проверяет строку на симметричность
// строка задается адресом превого символа и
// адресом последнего символа
// функция возвращает истину, если строка является
// палиндромом
bool isPalindrome(const char *begin, const char *end) {
  while (begin < end) {
    if (*begin++ != *end--) {
      return false;
    }
  }
  return true;
};
 
int main(int argc, char *argv[]) {
 
  const char string[] = "arozaupalanalapuazora"; // строка
  int first = 3; // позиция первого символа с нуля
  int last = 17; // позиция последнего символа с нуля
 
  // выводит 1, если строка является палиндромом
  std::cout << isPalindrome(string + first, string + last) << std::endl;
  
  std::cin.get();
  return 0;
}
Добавлено через 3 минуты
Пардон, не заметил про рекурсию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <cstring>
 
// проверяет строку на симметричность
// строка задается адресом превого символа и
// адресом последнего символа
// функция возвращает истину, если строка является
// палиндромом
bool isPalindrome(const char *begin, const char *end) {
  if (begin < end) {
    if (*begin != *end) {
      return false;
    } else {
      return isPalindrome(begin + 1, end - 1);
    }
  } else {
    return true;
  }
};
 
int main(int argc, char *argv[]) {
 
  const char string[] = "arozaupalanalapuazora"; // строка
  int first = 3; // позиция первого символа с нуля
  int last = 17; // позиция последнего символа с нуля
 
  // выводит 1, если строка является палиндромом
  std::cout << isPalindrome(string + first, string + last) << std::endl;
  // выводит 0, если строка не является палиндромом
  std::cout << isPalindrome(string + first, string + last + 1) << std::endl;
  
  std::cin.get();
  return 0;
}
 
Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru