Работа со строками

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Ванно
Сообщения: 6
Зарегистрирован: 18 дек 2013, 10:46

Нужна помощь (при вводе строки пробел расценивается компилятором как символ окончания строки) как это можно обойти? Вот код:

Код: Выделить всё

#include "stdafx.h"
#include "stdlib.h"
#include "locale.h"

int KolZaglBukv (char *s)
{int i=0,k=0;
	while (*s!='\0')
		{if (*s>='A' && *s<='Z') k++;
		s++;}
	return k;
}

char* DelSpaceVNachale (char* s)
{while (*s==' ')
	s++;
return s;
}

int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_CTYPE,"Russian");
	int size,KZB;char *str;
printf("Введите количество символов в строке\n");
scanf("%d", &size);
str=(char*)malloc(size+1);
printf("Введите строку на латинице(размером, не превышающим %d)\n", size);
scanf("%s", str);
KZB=KolZaglBukv(str);
printf("Количество заглавных букв в строке равно %d\n", KZB);
printf("%s\n", str);
str=DelSpaceVNachale (str);
printf("%s\n", str);	
	return 0;
}
Заранее, спасибо.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Ванно писал(а):(при вводе строки пробел расценивается компилятором как символ окончания строки) как это можно обойти?
Читать строку не через scanf, а через gets.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ванно
Сообщения: 6
Зарегистрирован: 18 дек 2013, 10:46

Спасибо, буду пробовать.
Ответить