powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задача по строкам.
24 сообщений из 24, страница 1 из 1
Задача по строкам.
    #37160701
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите мне решить задачу на языке С: "Даны две строки. Получить из этих строк новую строку, объединив N1 первых символов первой строки и N2 последних символов второй строки. N1 и N2 вводятся пользователем."
С учетом, что максимальная длина строки не менее 50 символов. При реализации программы использование функций для работы со строками из библиотек stdlib.h и string.h запрещено.
Спасибо.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160708
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел-бы я посмотреть в глаза этому преподу...
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160721
к е к с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksXX,

а как же лекции, конспекты, книжки?
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160868
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Преподаватель не объясняет, а самому сложно понять.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160878
ModulNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, нормально, учись студент !

Судя по задачке на С надо ?

Давай пиши , как 2 строки создаешь. Примерно...Подскажемс...

Книжку возьми, полистай по тип char.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160897
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXX,

Для начала надо знать, "строки" - это char* или string. Т.е. чистый C или все-таки С++?

Так же не ясно, что значит "учесть, что максимальная длина строки не менее 50 символов". Т.е. какая разница, сколько?
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160945
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чистый С. Извините, просто я не особо разбираюсь... Смог бы сам понять - сюда бы не писал.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37160961
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тип - char.
Код: plaintext
char str_c[] = “ String!”;
Вроде бы так объявлять строку.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37161139
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXXТип - char.
Код: plaintext
char str_c[] = “ String!”;
Вроде бы так объявлять строку.

круто. уже неплохо.
а как вторую создаешь?
...
Рейтинг: 0 / 0
Задача по строкам.
    #37161196
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 12.03.2011 10:45, AleksXX wrote:

> Преподаватель не объясняет, а самому сложно понять.

Ага, так и поверил ...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Задача по строкам.
    #37161405
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXXТип - char.
Код: plaintext
char str_c[] = “ String!”;
Вроде бы так объявлять строку.
Здесь - финт ушами. Хотя преп запретил юзать стандартный АПИ для ASCIIZ массивов
мы всё таки ему "втюхали" хорошенькую константу. Жаль. Можно было-бы
придумать "свои" строки. Ну например, заканчивающиеся ENTER-ом. Или символом смайлика.
Или хранящиеся задом наперёд. Или под каким-нибудь shuffle для пущей секюрности.
Дескать у меня библиотечка "устойчивая к хаку". Строковые переменные не ищутся
через поиск и не трессируются в дампе.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37162254
Сыроежка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXX С учетом, что максимальная длина строки не менее 50 символов.
Спасибо.

Наверное вы имели в виду, что максимальная длина строки не должна превышать 50 символов?
...
Рейтинг: 0 / 0
Задача по строкам.
    #37162378
Сыроежка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXXЗдравствуйте, помогите мне решить задачу на языке С: "Даны две строки. Получить из этих строк новую строку, объединив N1 первых символов первой строки и N2 последних символов второй строки. N1 и N2 вводятся пользователем."
С учетом, что максимальная длина строки не менее 50 символов. При реализации программы использование функций для работы со строками из библиотек stdlib.h и string.h запрещено.
Спасибо.

Напишите сами стандартные функции, а из них "собирите" свою задачу.

Например, копирование из одной строки в другую выполняется циклом

while ( ( *dest++ = *src++ ) != '\0' );

Копирование n-символов можно выполнить так

while ( n-- && ( *dest++ = *src++ ) != '\0' );

И т.д.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37162991
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны две строки. Получить из этих строк новую строку, объединив N1 первых символов
первой строки и N2 последних символов второй строки. N1 и N2 вводятся пользователем.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include<stdio.h>
#include<string.h>

int main (int argc, char *argv[]) 
{
  int N1, N2;
  char str1[ 101 ], str2[ 101 ], str3[ 101 ] = "";
	puts("Vvedite stroky 1: ");
	scanf("%s", str1);
  puts("Vvedite stroky 2: ");
	scanf("%s", str2);
	puts("Skolko skopirovat simvlov s nachala 1 ctroki?");
	scanf("%d", &N1);
  puts("Skolko skopirovat simvlov s konca 2 ctroki?");
	scanf("%d", &N2);
  strncpy(str3,str1,N1);    
	printf("Stroka 3: \n %s \n", str3);
	return  0 ;
}

Проверьте пожалуйста.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37164274
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXX,

1. strncpy() библиотечная функция которую (если верить твоему первому посту) использовать нельзя.
2. Забыл обработать вторую строку.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37164569
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что не правильно??? Перепишите.
...
Рейтинг: 0 / 0
Задача по строкам.
    #37165284
ДобрыйКот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
{
  int N1 =  5 , N2 =  4 ;
  char str1[ 101 ], str2[ 101 ], str3[ 101 ];

	puts("Vvedite stroky 1: ");
	scanf("%s", str1);
  puts("Vvedite stroky 2: ");
	scanf("%s", str2);
	puts("Skolko skopirovat simvlov s nachala 1 ctroki?");
	scanf("%d", &N1);
  puts("Skolko skopirovat simvlov s konca 2 ctroki?");
	scanf("%d", &N2);

	for (int i= 0 ; i<N1; i++)
		str3[i] = str1[i];

	for (int j=N1, i=strlen(str2)-N2; i<=strlen(str2); i++,j++)
		str3[j] = str2[i];

	strlen(str2);
	printf("Stroka 3: \n%s \n", str3);
	return  0 ;
}
...
Рейтинг: 0 / 0
Задача по строкам.
    #37165343
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДобрыйКот,
вот это, конечно, супер эффективный код:
Код: plaintext
1.
2.
for (int j=N1, i=strlen(str2)-N2; i<=strlen(str2); i++,j++)
		str3[j] = str2[i];
правильно, пусть процессор поработает, нефига ему простаивать :-))
...
Рейтинг: 0 / 0
Задача по строкам.
    #37165364
ДобрыйКот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отбалдуя писал, без проверки на ошибки и тп. Ему понятней будет
...
Рейтинг: 0 / 0
Задача по строкам.
    #37165430
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДобрыйКот пишет:

Д> отбалдуя писал, без проверки на ошибки и тп. Ему понятней будет

А потом появляются темы типа "Почему программа на С++ работает медленнее, чем такая же на С#"
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Задача по строкам.
    #37183301
AleksXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет проверьте пожалуйста.

Дана строка, содержащая число в десятичной системе исчисления. Преобразовать число в строке к восьмеричной системе.


#include<stdio.h>
#include<string.h>
int main (int argc, char *argv[]) {
int N1, N2;
char str1[101], str2[101], str3[101] = "";
puts("Vvedite stroky 1: ");
scanf("%s", str1);
puts("Vvedite stroky 2: ");
scanf("%s", str2);
puts("Skolko skopirovat simvlov s nachala 1 ctroki?");
scanf("%d", &N1);
puts("Skolko skopirovat simvlov s konca 2 ctroki?");
scanf("%d", &N2);
for (int i=0; i<N1; i++)
str3[i] = str1[i];

for (int j=N1, i=strlen(str2)-N2; i<=strlen(str2); i++,j++)
str3[j] = str2[i];

strlen(str2);
printf("Stroka 3: \n%s \n", str3);
return 0;
}
...
Рейтинг: 0 / 0
Задача по строкам.
    #37183821
Сыроежка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksXXВсем привет проверьте пожалуйста.

Дана строка, содержащая число в десятичной системе исчисления. Преобразовать число в строке к восьмеричной системе.


#include<stdio.h>
#include<string.h>
int main (int argc, char *argv[]) {
int N1, N2;
char str1[101], str2[101], str3[101] = "";
puts("Vvedite stroky 1: ");
scanf("%s", str1);
puts("Vvedite stroky 2: ");
scanf("%s", str2);
puts("Skolko skopirovat simvlov s nachala 1 ctroki?");
scanf("%d", &N1);
puts("Skolko skopirovat simvlov s konca 2 ctroki?");
scanf("%d", &N2);
for (int i=0; i<N1; i++)
str3[i] = str1[i];

for (int j=N1, i=strlen(str2)-N2; i<=strlen(str2); i++,j++)
str3[j] = str2[i];

strlen(str2);
printf("Stroka 3: \n%s \n", str3);
return 0;
}

Это неправильный код! Вы работаете со строками, а потому вы должны проверять, не встретился ли нулевой символ. Все строковые функции, которые объявляют параметры, как строки, работают по этому принципу.
Кроме того, неясно, каому стандарту соответствует ваш компилятор. Если он соответствует стандарту С89, то нельзя объявлять переменную внутри цикла

for (int i=0; i<N1; i++)

То есть этот код не будет компилироваться, если ваш компилятор не поддерживает новый стандарт С99.

Кроме того, есть вопросы к постановке задачи. Если вы копируете str2, длина которой меньше, чем N1, то что делать? Либо прекращать копирование, как только вся строка str2 будет скопирована в str1, либо дополнить строку str3 нулями, пока не исчерпаем N1.
На мой взгляд вы должны ориентироваться на интерфейс функции strncpy, которая дополняет строку-назначение нулями, если N больше длины копируемой строки. Но в вашем случае это деалть, после копирования двух строк.
То есть сначала вы копируете строку str1 в str3. Запоминаете, сколько у вас осталось резева в числе N1 ( то есть N1 может быть больше, чем strlen( str1 )). Затем копируете целиком строку str2 в str3. А затем str3 дополняете нулями, количеству которых равно тому, что еще осталось в N1 + N2.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Задача по строкам.
    #38327811
Иван7485783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
#include <iostream>
#include <cstdio>
using namespace std;
int s_length(char s[])
{
    int length;
    for(length=0;s[length];i++);
    return length;
}
void s_copy_N(int number,char s_1[],char s_2[])
{
    int i , j;
    for(i=s_length(s_1),j=0;j<number;i++,j++)
    {
        s_1[i]=s_2[j];
    }
    s_1[i]='\0';
}
void s_reverse(char s[])
{
    char rev;
    int length=s_length(s);
    for(int i=0;i<=length/2-1;i++)
    {
        rev=s[i];
        s[i]=s[length-i-1];
        s[length-i-1]=rev;
    }
}
void show_string(char s[])
{
    for(int i=0;s[i];i++)cout << s[i];
}
int main()
{
    int  N1 , N2;
    char s1[101] , s2[101] , s3[201]="";
    cout <<"Enter the first string: "; gets(s1);
    cout <<"Enter the second string: "; gets(s2);
    do
    {
        cout <<"Enter two numbers: Sum of that's numbers must be >= 50 <= 200 \n";
        cout <<"N_1 = "; cin >> N1;
        cout <<"N_2 = "; cin >> N2;
    }
    while((N1+N2)>200||(N1+N2)<50);
    s_reverse(s2);
    s_copy_N(N1,s3,s1);
    s_copy_N(N2,s3,s2);
    show_string(s3);
    return 0;
}
...
Рейтинг: 0 / 0
Задача по строкам.
    #38328641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С Новым Годом, некромант ты наш!
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задача по строкам.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]