Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос от совсем начинающего... / 16 сообщений из 16, страница 1 из 1
24.05.2005, 13:48
    #33082106
ddS'
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
#include "stdio.h"
main()
{
char a[10];
printf("Введите строку и нажмите  Enter\n");
gets(a);
....
}
Подскажите, пожалуйста, как при помощи условной операции заменить все буквы верхнего регистра на буквы нижнего?
Заранее спасибо!!!
...
Рейтинг: 0 / 0
24.05.2005, 14:28
    #33082212
BSISoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Что значит
[quot ddS']при помощи условной операции [quot]
?
Посмотри в хелпе работу со строками. Там должно быть написано при помощи какой функции перевести строку в верхний регистр (сделать заглавными).
...
Рейтинг: 0 / 0
24.05.2005, 14:58
    #33082295
HELP_ME2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
BSISoft ,
ПО-МОЕМУ ГОСТЬ ХОЧЕТ ОТВЕТ
НАПОДОБИЕ НИЖЕИДУЩЕГО ФРАГМЕНТА

Код: plaintext
1.
2.
3.
4.
5.
#if !defined(AFX_SEVERALVIEWS_MDI_2VIEW_H__B54DC74F_696F_11D9_9E8C_00A0D21B098B__INCLUDED_)
#define AFX_SEVERALVIEWS_MDI_2VIEW_H__B54DC74F_696F_11D9_9E8C_00A0D21B098B__INCLUDED_

#if _MSC_VER >  1000 
#pragma once
#endif // _MSC_VER >  1000 

КОТОРЫЙ РАЗМЕЩАЕТСЯ В ЗАГОЛОВОЧНОМ ФАЙЛЕ
КАЖДОГО КЛАССА.

PS: фрагмент показан как я понял что требуется,
НО ЭТО НЕ ОТВЕТ
...
Рейтинг: 0 / 0
24.05.2005, 15:00
    #33082304
ddS'
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Буква переводится к нижнему регистру функцией folower(c). Но как узнать, что какая-то буква записана в верхнем регистре и её надо переводить?????
...
Рейтинг: 0 / 0
24.05.2005, 15:15
    #33082340
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
ddS'#include "stdio.h"
main()
{
char a[10];
printf("Введите строку и нажмите  Enter\n");
gets(a);
....
}
Подскажите, пожалуйста, как при помощи условной операции заменить все буквы верхнего регистра на буквы нижнего?
Заранее спасибо!!!

Приведу примерчик. Но, ВНИМАНИЕ! Оно работает только для ЛАТИНСКИХ букв.
Код: plaintext
1.
2.
for (int i= 0 ;i< 10 ;i++)
 a[i]=((a[i]>='A') && (a[i]<='Z'))?a[i]+ 32 :a[i]
...
Рейтинг: 0 / 0
24.05.2005, 15:22
    #33082364
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
ddS'Буква переводится к нижнему регистру функцией folower(c). Но как узнать, что какая-то буква записана в верхнем регистре и её надо переводить?????
Разберись в примере из MSDN и все поймешь:
Код: 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.
Example

/* TOUPPER.C: This program uses toupper and tolower to
 * analyze all characters between 0x0 and 0x7F. It also
 * applies _toupper and _tolower to any code in this
 * range for which these functions make sense.
 */

#include <conio.h>
#include <ctype.h>
#include <string.h>

char msg[] = "Some of THESE letters are Capitals\r\n";
char *p;

void main( void )
{
   _cputs( msg );

   /* Reverse case of message. */
   for( p = msg; p < msg + strlen( msg ); p++ )
   {
      if( islower( *p ) )
         _putch( _toupper( *p ) );
      else if( isupper( *p ) )
         _putch( _tolower( *p ) );
      else
         _putch( *p );
   }
}


Output

Some of THESE letters are Capitals
sOME OF these LETTERS ARE cAPITALS


...
Рейтинг: 0 / 0
24.05.2005, 15:32
    #33082386
ddS'
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Станислав С., спасибо! Вариант:

for (int i=0;i<10;i++)
a =((a>='A') && (a<='Z'))?a+32:a

работает, только не преобразовывается последний символ
...
Рейтинг: 0 / 0
25.05.2005, 06:47
    #33083089
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
ddS'Станислав С., спасибо! Вариант:

for (int i=0;i<10;i++)
a =((a>='A') && (a<='Z'))?a+32:a

работает, только не преобразовывается последний символ

У меня преобразуется вся строка (естественно, я ввожу 10 символов). А вообще-то цикл может (и должен) отрабатывать РЕАЛЬНУЮ длину строки, которая получается через strlen()...
...
Рейтинг: 0 / 0
25.05.2005, 10:43
    #33083359
ddS'
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Всё работает как надо, СПАСИБО! Надо было мне просто перекомпелировать программу и последний символ стал преобразовываться.
...
Рейтинг: 0 / 0
27.05.2005, 15:38
    #33087858
ddS'
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Вопрос был в следущем: надо было перевести строку к нижнему регистру.
Переводил при помощи условной операции: a =((a>='A') && (a<='Z'))?a+32:a; - всё работало.
При помощи оператора if не переводится, точнее выдаются какие-то иероглифы.
Код приблизительно такой:

#include "stdio.h"
main()
{
char a[50];
int i;
printf("Введите строку и нажмите Enter\n");
gets(a);
i=0;
l1: if (a!='\0')
{
if (a=((a>='A')&&(a<='Z'))) a+32;
i++;
goto l1;
}
puts(a);
}

Что не так сделано?
...
Рейтинг: 0 / 0
27.05.2005, 15:43
    #33087870
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Во-первых, a - это массив. И в большей части программы должно быть a
...
Рейтинг: 0 / 0
27.05.2005, 15:44
    #33087878
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
ЗемлекопВо-первых, a - это массив. И в большей части программы должно быть
Код: plaintext
a[i]
...
Рейтинг: 0 / 0
27.05.2005, 15:45
    #33087881
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
а что, замени оператор if обратно на то, что было.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
27.05.2005, 15:47
    #33087890
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Код: plaintext
for (int i= 0 ;i< 10 ;i++) a[i]=((a[i]>='A') && (a[i]<='Z'))?a[i]+ 32 :a[i];
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
27.05.2005, 15:49
    #33087896
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#include "stdio.h"
main()
{
char a[ 50 ];
int i;
printf("Введите строку и нажмите  Enter\n");
gets(a);
i= 0 ;
l1: if (a[i]!='\0')
{
if ((a[i]>='A')&&(a[i]<='Z')) a[i]=a[i]+ 32 ;
i++;
goto l1;
}
puts(a);
}

Но я бы убил за такой код
...
Рейтинг: 0 / 0
27.05.2005, 16:29
    #33088025
BSISoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос от совсем начинающего...
HELP_ME2BSISoft ,
ПО-МОЕМУ ГОСТЬ ХОЧЕТ ОТВЕТ
НАПОДОБИЕ НИЖЕИДУЩЕГО ФРАГМЕНТА

Код: plaintext
1.
2.
3.
4.
5.
#if !defined(AFX_SEVERALVIEWS_MDI_2VIEW_H__B54DC74F_696F_11D9_9E8C_00A0D21B098B__INCLUDED_)
#define AFX_SEVERALVIEWS_MDI_2VIEW_H__B54DC74F_696F_11D9_9E8C_00A0D21B098B__INCLUDED_

#if _MSC_VER >  1000 
#pragma once
#endif // _MSC_VER >  1000 

КОТОРЫЙ РАЗМЕЩАЕТСЯ В ЗАГОЛОВОЧНОМ ФАЙЛЕ
КАЖДОГО КЛАССА.

PS: фрагмент показан как я понял что требуется,
НО ЭТО НЕ ОТВЕТ
Спасибо, что сказал, а то я не понял что ему нужно.
Прошу прощения за грубость.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос от совсем начинающего... / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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