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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 16:04   #1
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
Сообщение Небольшой вопрос про массив

Здравствуйте, изучаю строки. Столкнулся с проблемой. Дана последовательность слов. Необходимо ввести и вывести посимвольно, не получается вывести в чем ошибка?

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX_STRINGS 3
#define MAX_LENGTH 10

int main()
{
	char s[MAX_STRINGS][MAX_LENGTH];
	int i, j;

	printf ("\nInput strings -> ");

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; j < MAX_LENGTH; j++)
		{
			scanf_s ("%c",&s[i][j]);
		}
	}

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; j < MAX_LENGTH; j++)
		{
			printf ("%s",s[i]);
		}
	}

	_getch();
}
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 16:20   #2
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

Может быть так?
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX_STRINGS 3
#define MAX_LENGTH 10

int main()
{
	char s[MAX_STRINGS][MAX_LENGTH];
	int i, j;

	printf ("\nInput strings -> ");

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; j < MAX_LENGTH; j++)
		{
			scanf_s ("%c",&s[i][j]);
		}
	}

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; j < MAX_LENGTH; j++)
		{
			printf ("%c",s[i][j]);
		}
	}

	_getch();
}
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 16:25   #3
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

Хотя, я-бы ещё тут поправил:
Код:
for (j = 0; j < MAX_LENGTH && (s[i][j]!='\n'); j++)
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 16:26   #4
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

Не работает, после ввода слов, ничего не выводит ((
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 16:28   #5
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

У меня всё заработало, просто у тебя пока цикл не считает по 10 символов 3 раза - не успокоится... тоесть, переводы строки не останавливают чтение - если ты наберёшь через Enter такие строки: "qwe" enter "rty" - то они запишутся в ПЕРВУЮ подстроку так: "qwe\nrty" поправь условие на j попробуй... Хотя, может дело и в scanf_s... у меня кодблок не распознаёт её - она мелкомягкая, поэтому проверить не могу.

Последний раз редактировалось Darth.Vader; 06.12.2009 в 16:31.
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 16:31   #6
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

Проблема решена, спасибо, вместо scanf надо юзать было)

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

Последний раз редактировалось Sazary; 06.12.2009 в 23:57.
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 16:42   #7
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX_STRINGS 3
#define MAX_LENGTH 10

int main()
{
	char s[MAX_STRINGS][MAX_LENGTH];
	int i, j;

	printf ("\nInput strings -> ");

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; (j < MAX_LENGTH) && (s[i][j-1]!='\n') && (s[i][j-1]!=','); j++)
		{
			scanf ("%c",&s[i][j]);
		}
	}

	for (i = 0; i < MAX_STRINGS; i++)
	{
		for (j = 0; (j < MAX_LENGTH) && (s[i][j-1]!='\n') && (s[i][j-1]!=','); j++)
		{
			printf ("%c",s[i][j]);
		}
	}

	_getch();
}
Читает подстроки до появления запятой, перевода строки или если достигнуто значение MAX_LENGTH. Выводит так-же.

Последний раз редактировалось Darth.Vader; 06.12.2009 в 16:45. Причина: дополнение
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 16:45   #8
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

Спасибо огромное за помощь!)
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 16:46   #9
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

Да на здоровье
Darth.Vader вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
небольшой вопрос по перемещению файлов в c# adwaer Помощь студентам 0 05.11.2009 11:08
растянуть RichViewEdit (Небольшой вопрос) Fezilk Общие вопросы Delphi 1 23.08.2009 14:40
Небольшой вопрос по ошибки ввода вывода. NoHeart Помощь студентам 4 19.01.2009 20:13
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
Небольшой вопрос по транспонированию Deman4eg Microsoft Office Excel 11 21.02.2008 11:09