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

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

Войти
Регистрация
Восстановить пароль
 
Aplo
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 3
#1

Строки - C++

05.02.2010, 19:50. Просмотров 398. Ответов 9
Метки нет (Все метки)

Может кто-нибудь объяснить каждую строчку в этой программе ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "math.h"
void main()
{char a[];
int i,d;
cout<<"Input digital string: ";
cin>>a;
for(i=0;*a++!="\0";i++)
{swich(a[i])
{case "1": d+=1*pow(10,strlen(a)-i);break;
case "2": d+=2*pow(10,strlen(a)-i); break;
case "3": d+=3*pow(10,strlen(a)-i); break;
case "4": d+=4*pow(10,strlen(a)-i); break;
case "5": d+=5*pow(10,strlen(a)-i); break;
case "6": d+=6*pow(10,strlen(a)-i); break;
case "7": d+=7*pow(10,strlen(a)-i); break;
case "8": d+=8*pow(10,strlen(a)-i); break;
case "9": d+=9*pow(10,strlen(a)-i); break;
default:d+=0;};};
cout<<"Resalt: "<<d;}
Заранее спасибо!)

Добавлено через 1 час 45 минут
Люди, помогите плиз! оч надо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 19:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (C++):

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

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

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

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

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

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

9
Gemor
161 / 22 / 3
Регистрация: 05.02.2010
Сообщений: 207
05.02.2010, 20:17 #2
include - это включение в компилируемый файл заголовочных файлов (там функции нужные описаны)

void main - собственно отсюда начинается выполнение программы

char a[] - массив символов (букв)

int i - переменная типа integer, хранит целые числа

cout<< выводит на экран строку

cin - присваивает переменной значение, к-рое ввел пользователь

for - цикл

switch - выбираем то, за чем будем следить
case "6" - если элемент имеет значение 6, то выполняется код, описанный здесь
default: другое значение, не описанное в case
0
Aplo
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 3
05.02.2010, 20:57  [ТС] #3
Тогда такой вопрос, cin>>a; какое значение присваивает тут ? чето не могу разобраться ...=\
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
05.02.2010, 21:06 #4
Aplo, char a[255]; std::cin >> a; хоть так сделай.. но не char a[] - это н скомпилируется.
0
Gemor
161 / 22 / 3
Регистрация: 05.02.2010
Сообщений: 207
05.02.2010, 21:25 #5
в данном тобой коде ошибки

например,
int a;
cin>>a;

как это будет выглядеть:
выполнение программы остановится до тех пор, пока пользователь не введет с клавиатуры какое-либо значение и не нажмет enter
переменная a будет равна тому значению, к-рое ввел юзверь

Gemor, еще одно такое выражение и эта возможность у тебя появится автоматически. M128K145
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.02.2010, 21:57 #6
Цитата Сообщение от Gemor Посмотреть сообщение
бл...ть!!! да открой ты учебник, уже невозможно не ругаться!
погугли на "пошла ты со своим утюгом". там про тебя
1
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
05.02.2010, 22:56 #7
Цитата Сообщение от Gemor Посмотреть сообщение
в данном тобой коде ошибки
Ага, и много... Например:
Цитата Сообщение от Aplo Посмотреть сообщение
char a[];
Массив элементов типа char неизвестного размера. То есть просто компилиться не будет.

Цитата Сообщение от Aplo Посмотреть сообщение
cin>>a;
фактически а - указатель на первый в последовательности элементов типа char неизвестного размера. Что пользователю ввести предлагается?

Цитата Сообщение от Aplo Посмотреть сообщение
for(i=0;*a++!="\0";i++)
Если бы даже умудрились ввести некоторую последовательность байтов, при такой организации цикла первый элемент пролетел бы мимо потому, что после проверки *a++!="\0"; а уже указывал бы на следующий элемент массива. Мало того, значение а просто менять нельзя.

Цитата Сообщение от Aplo Посмотреть сообщение
{swich(a[i])
{case "1": d+=1*pow(10,strlen(a)-i);break;
case "2": d+=2*pow(10,strlen(a)-i); break;
...
это вообще что?! во-первых d неинициализированная переменная, к какому значению прибавляется это странное выражение? а во-вторых при условии, что всё-таки удалось бы изменять в цикле значение а, на что будет a[i] указывать? незачёт, короче...

Добавлено через 23 секунды
Цитата Сообщение от novi4ok Посмотреть сообщение
погугли на "пошла ты со своим утюгом". там про тебя

Не по теме:

плакал...

0
Aplo
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 3
06.02.2010, 08:42  [ТС] #8
Ну вот само задание:
Задание 6. Составить функцию, переводящую десятичное целое число, представленное в символьном виде, в соответствующую величину целого типа.
Если в моем коде столько ошибок, то как тогда правильно ?
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
06.02.2010, 11:08 #9
Aplo,
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
 
int main()
{
    std::string str = "100";
    int number = boost::lexical_cast <int> (str);
    std::cout << number << std::endl;
 
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
06.02.2010, 12:56 #10
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    char *str = "100500";
    
    printf("%d\n", atoi(str));
    
    exit(0);
}
Добавлено через 58 минут
Aplo, если суть в том, чтобы собственный велосипед сделать, то вот:
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
35
36
37
38
#include <stdio.h>
#include <ctype.h>
 
int my_atoi(const char *s){
    int d, sign = 1;
    
    if ( !s )
        return 0;
    
    while ( isspace(*s) )
        ++s;
    if ( *s == '-' ){
        sign = -1;
        ++s;
    }
    else if ( *s == '+' )
        ++s;
        
    for ( d = 0; isdigit(*s); ++s )
        d = d * 10 + *s - '0';
    
    return d * sign;
}
 
int main(void){
    char buf[128] = { 0 };
    int num;
    
    while ( 1 ){
        printf("String: ");
        scanf("%127s", buf);
        if ( ( num = my_atoi(buf) ) == 0 )
            break;
        printf("%d\n", num);
    }
    
    return 0;
}
0
06.02.2010, 12:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2010, 12:56
Привет! Вот еще темы с ответами:

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

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

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

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


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

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

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