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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 21:02   #1
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
Стрелка не видит нулевой символ!!!

вообщем я только взялся изучать c++ и у меня возник вопрос!))
например мне нужна следующая программа без использования string.h:
-пользователь вводи строку.любую.не больше 100 символов
-мы считаем сколько там букв включая пробелы
-выводим на экран

я уже давно пишу на делфи и C++ впринципе не сложный...но вот строки здесь реализованны по-другому
вообщем вот мой вариант который не работает
Код:
#include <stdafx.h>
#include <iostream>

using namespace std;

int main()
{
char tek_b[1],pred_b[1],str_in[100],str_out[100]; 
int kol_bykv = 0;
int i;
printf("ENTER STRING. MAX SIZE 100 :");
scanf("%s",str_in);
for(kol_bykv=0,i=0;i<=100;i++)
		{
			if (str_in[i]!='\0') kol_bykv++;
		}


printf("koli4eCTBO %d \n",kol_bykv);
return 0;	

}
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Старый 09.12.2009, 21:13   #2
Junk1E
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 28
По умолчанию

Считает именно буквы, без пробелов. Твой код у мну чет вообще не пахал... Я сам не давно С++ изучаю, но чет в чаравских массивах никогда не замечается пробел ....


Код:
#include <iostream>

using namespace std;

int main()
{
char tek_b[1],pred_b[1],str_in[100],str_out[100]; 
int kol_bykv = 0, exit;
int i;
printf("ENTER STRING. MAX SIZE 100 :");
for(i=0;i<=10;i++)
		{
            cin>>str_in[i];
			if (str_in[i]!='\0') kol_bykv++;
		}


cout<<"koli4eCTBO "<<kol_bykv;
cout<<"Exit?";
cin>>exit;
}
Junk1E вне форума Ответить с цитированием
Старый 09.12.2009, 21:28   #3
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
По умолчанию

вообщем посчитать я смог..даже в цикл уложил...терь другая проблема...вот в Делфи есть строка и символ..можно так STRING+CHAR
а тут как это выполнить????вот код
Код:
#include <stdafx.h>
#include <iostream>

using namespace std;

int main()
{
char tek_b,pred_b,str_in[100],str_out[100]; 
int kol_bykv = 0;
int i;
printf("ENTER STRING.SIZE DIAPOZON 1-100 :");
scanf("%s",str_in);
pred_b='\0';
for (kol_bykv=0;str_in[kol_bykv]!=NULL;kol_bykv++) 
{tek_b=str_in[kol_bykv];
if (tek_b!=pred_b) str_out=str_out+tek_b;
		}
printf("koli4eCTBO %s \n",str_out);
return 0;	

}
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Старый 09.12.2009, 21:37   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

std::string и все его прелести.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 09.12.2009, 21:39   #5
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
По умолчанию

говорю же без использования string.h
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Старый 09.12.2009, 21:45   #6
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Во-первых, синтаксис функции scanf следующий:

Код:
scanf("%s", &str_in);
Посчитать количество букв в слове:

Код:
for(kol_bykv=0,i=0;i<=100;i++)
		{
			if (str_in[i]=='\0') 
				break;
			kol_bykv++;
		}
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 09.12.2009, 21:45   #7
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
Восклицание

Тему можно закрывать!)вот решение данной проблемы
Код:
#include <stdafx.h>
#include <iostream>

using namespace std;

int main()
{
char tek_b,pred_b,str_in[100],str_out[100]; 
int kol_bykv = 0;
int i;
printf("ENTER STRING.SIZE DIAPOZON 1-100 :");
scanf("%s",str_in);
pred_b='z';
for (kol_bykv=0,i=0;str_in[kol_bykv]!=NULL;kol_bykv++) 
		{tek_b=str_in[kol_bykv];
			if (tek_b!=pred_b) 
				{str_out[i]=tek_b;
				 str_out[i+1]=NULL;
				i++;
				}		
		pred_b=tek_b;
}
printf("rezultat %s \n",str_out);
return 0;	

}
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Старый 09.12.2009, 21:57   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

string.h, если я правильно помню, относится к си-строкам, а не к стандартным строкам C++.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 09.12.2009, 22:00   #9
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
По умолчанию

вообще то изначально да...там разница в *.h
и кстати похимичев с буквами вот что получилось
Код:
#include <stdafx.h>
#include <iostream>
#include <windows.h>

using namespace std;
void RussianMessage(char *str){
   char message[100];
   CharToOem(str,message);
   printf(message);
}
int main()
{
char tek_b,pred_b,str_in[100],str_out[100]; 
int kol_bykv = 0;
int i;
RussianMessage("Введите исходную строку и нажмите ENTER. Диапозон символом от 1 до 100:  ");
printf("\n");
scanf("%s",str_in);
pred_b='z';
for (kol_bykv=0,i=0;str_in[kol_bykv]!=NULL;kol_bykv++) 
		{tek_b=str_in[kol_bykv];
			if (tek_b!=pred_b) 
				{str_out[i]=tek_b;
				 str_out[i+1]=NULL;
				i++;
				}		
		pred_b=tek_b;
}
RussianMessage("Убираем все подрят идущие буквы и получаем следующую строку :");
printf("\n%s\n",str_out);
return 0;	

}
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нулевой массив? mutabor Общие вопросы Delphi 2 08.12.2009 18:07
первый нулевой элемент массива shelest Помощь студентам 2 15.11.2009 12:38
Формирование единичной и нулевой матрицы britva666 Помощь студентам 2 02.06.2009 08:09
Ноутбук не видит USB SKS Компьютерное железо 4 04.02.2009 22:44
комп не видит операционку!! photozaz Операционные системы общие вопросы 6 04.08.2008 06:38