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

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

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

Работа со строками ( разбить строку на N заданных частей с помощью strncpy) - C++

22.04.2013, 17:55. Просмотров 354. Ответов 2
Метки нет (Все метки)

Все доброго времени суток. Суть моей программы такова: меня нужно разбить строку на N заданных частей с помощью strncpy. Немного написал алгоритм, но не понимаю, почему он зацикливаеться. Кто знает в чём проблема, прошук помочь, заранее спасибо.
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
#include "StdAfx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include<iostream>
using namespace std;
 
 
int main()
{
    
    char dst[32], src[100];
    int start = 0, temp=0, count = 0, n=0, dlina=0,del=0,i=0;
    cout<<"vvedi stroku";
    cin>>src;
    cout<<"Na skolko chastei budet delitsya stroka";
    cin>>n;
    dlina=strlen(src);
    cout<<"dlina = "<<dlina<<endl;
    cout<<"Delim stroku...";
    del=dlina/n;
    cout<<"Kolvo razdelenyh strok"<<del;
    count=n;
    while(src!='\0')
        {
    strncpy(dst, src+start,count);
           dst[count]=NULL;
    puts(dst);
    start=temp+n;
    temp=n;
        }
 
 
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 17:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа со строками ( разбить строку на N заданных частей с помощью strncpy) (C++):

Сформировать третью строку - сумму двух заданных строками чисел - C++
Нужна ваша помощь. 1) Даны две символьные строки, состоящие только из цифр (длина каждой - более 10 символов). Считая, что в этих...

Работа со строками (вывести на экран введенную строку) - C++
Помогите пожалуйста, нужно просто вывести на экран, введенную строку, что не так: string stroka; printf(&quot;Vvedi stroku: &quot;); ...

Разбить массив на 10 частей (массивов) - C++
1. Сформировать масив_1, содержащий 10000 эл-тов. массив заполняется случайными числами от 0 до 10000. 2. Отсортировать массив. 3....

работа со строками. Перевернуть, заданную пользователем строку, в отдельной функции - C++
задание- перевернуть, заданную пользователем строку, в отдельной функции; написал вот такой код, переворачиваю-&gt; копирую-&gt;вывожу ...

Как разбить массив на 5 частей по 4 символа (бита)? - C++
Здравствуйте! Подскажите, пожалуйста, как разбить массив на 5 частей по 4 символа (бита). Получается, вывести только первых четыре...

Отрезок [a,b] разбить на n частей, каждую часть проинтегрировать - C++
Написать программу на С++ отрезок разбить на n частей каждую часть про интегрировать! Помогите пожалуйста!!!!!!!!!!!

2
Tulosba
:)
Эксперт С++
4619 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.04.2013, 19:08 #2
Slava_dk, так у Вас переменная цикла не модифицируется в теле цикла. А учитывая, что src имя массива, модифицировать Вы её вообще не сможете. Введите доп.переменную, которая будет указывать на текущий обрабатываемый символ.

Добавлено через 15 минут
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
#include "StdAfx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include<iostream>
using namespace std;
 
int main()
{
    char dst[32], src[100];
    int start = 0, temp=0, n=0, dlina=0,del=0,i=0;
    cout<<"vvedi stroku";
    cin.getline( src, 100 );
 
    cout<<"Na skolko chastei budet delitsya stroka";
    cin>>n;
    dlina=strlen(src);
    cout<<"dlina = "<<dlina<<endl;
    cout<<"Delim stroku...";
    del=dlina/n;
    //cout<<"Kolvo razdelenyh strok"<<del;
    // count=n;
 
    char *ptr = src;
 
    while(*ptr!='\0')
    {
        strncpy(dst, ptr, del);
        dst[del]='\0';
        puts(dst);
        ptr += strlen(dst);
    }
 
    _getch();
    return 0;
}
1
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
22.04.2013, 22:40  [ТС] #3
Цитата Сообщение от Tulosba Посмотреть сообщение
Slava_dk, так у Вас переменная цикла не модифицируется в теле цикла. А учитывая, что src имя массива, модифицировать Вы её вообще не сможете. Введите доп.переменную, которая будет указывать на текущий обрабатываемый символ.

Добавлено через 15 минут
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
#include "StdAfx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include<iostream>
using namespace std;
 
int main()
{
    char dst[32], src[100];
    int start = 0, temp=0, n=0, dlina=0,del=0,i=0;
    cout<<"vvedi stroku";
    cin.getline( src, 100 );
 
    cout<<"Na skolko chastei budet delitsya stroka";
    cin>>n;
    dlina=strlen(src);
    cout<<"dlina = "<<dlina<<endl;
    cout<<"Delim stroku...";
    del=dlina/n;
    //cout<<"Kolvo razdelenyh strok"<<del;
    // count=n;
 
    char *ptr = src;
 
    while(*ptr!='\0')
    {
        strncpy(dst, ptr, del);
        dst[del]='\0';
        puts(dst);
        ptr += strlen(dst);
    }
 
    _getch();
    return 0;
}
Спасибо огромное...теперь ясно в чём была загвоздка
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 22:40
Привет! Вот еще темы с ответами:

Работа со строками (записать в другую строку первое слово и поставить пробел) - C++
Помогите разобраться, мы вводим с клавиатуры строку,строка из нескольких слов отделяемых &quot;;&quot; как записать в другую строку первое слово и...

Отрезок разбить на n частей, каждую часть проинтегрировать, либо методом трапеции - C++
1)Вписать простую функцию sin^2(П/2*x) 2)на разбить на n частей каждую часть проинтегрировать либо методом трапеции; либо гаусс по 16...

Разбить строку на несколько частей - CMD/BAT
Как разбить слово/цифр на несколько частей на экран? Вот собрал код:@echo off for /f %%f in ('dir /b /o:n *.txt') do ( echo file: %%f...

Разбить строку на несколько частей? - C++ Builder
Здравствуйте. У меня проблема. Я только начинаюший в Builder-e и вообще любитель чё-нибудь написать. Недавно написал простинькую...


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

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

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