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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2012, 11:16   #1
FlipFan
Пользователь
 
Регистрация: 30.03.2012
Сообщений: 14
По умолчанию Сортировка строковых литералов

Условие: Дан массив строковых литералов. В первой позиции каждой строки может стоять:
-цифра от 0 до 9;
-*;
-любой другой символ.
Если в первой позиции находится <<*>>, необходимо заменить её на цифру, если цифра, то скорректировать её, чтобы
цифры следовали в порядке возрастания. Другие символы не обрабатываются. Цифры в первой позиции должны следовать в порядке возрастания начиная с 0, если первой встретилась <<*>>. Если первой встретилась цифра, то нумерация начинается с неё.
-------------------------------
Звёздочки вроде как заменяет, только вот не могу понять почему не сортируются цифры, помогите плз.
Код:
#include <stdafx.h>
#include <stdio.h>
 #include <dos.h>
 #include <conio.h>
 
 
 
 typedef struct tgStrLst{
 char str[0xff];
 }StrLst;
 int main(void)
 {
 StrLst lstr[50]={
 {"*fgsfdgsdfgsdfgsdfg1"},
 {"3cncbncvbncbncvbnb2"},
 {"*xvbxvbxvbvxbxbvbx3"},
 {"6vbxvbxcbvxcvbxcvb4"},
 {"1vb1xvbxvbxcvbxvbxvbx5"},
 {"*vbcvbxcvbvbxcvbxcv6"},
 {"bx2cvbxcvcvxbxbxbxcb7"},
 {"1bx3bxcvbxcbxcvbxcbxcvbxcv8"},
 {"*bxcvbxvbxvbxcvbxcvbxcv9"},
 {"bxv4bxcvbxvbxcvbxcbvxcvb10"},
 {"xcv5bxcvbxcbvxvbxcbxvbbx11"},
 {"*xvbxbxbxbxcbxcvbxcvbxcvb12"},
 {"*xbxcvbxcvbxvxcvbxcvbxvb13"},
 {"*xcvbxcvbxcvbxcvbvbxcvb14"}};
 char index=0,bkv=0,fwv;
 while(lstr[index].str[0]!=0)
 {
 if(lstr[index].str[0]>0x2F && lstr[index].str[0]<0x3A)
 {
 fwv=(char)(lstr[index].str[0]-0x30);
 if(bkv<fwv)
 {
 bkv=fwv;
 }
 else
 if(bkv>=fwv)
 {
 bkv++;
 if(bkv>9)
 {
 if(fwv>0){bkv=fwv;}
 else
 {bkv=0;}
 }
 }
 lstr[index].str[0]=(char)(bkv+0x30);
 }
 
 if(lstr[index].str[0]=='*')
 {
 if(index>0)bkv++;
 if(bkv>9){bkv=0;}
 lstr[index].str[0]=(char)(bkv+'0');
 }
 
 
 printf("%s\r\n",lstr[index].str);
 index++;
 }
 printf("press any key\n");
 
 getch();
 return 0;
 }
FlipFan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строковых величин. ali23210275 Помощь студентам 6 29.03.2012 19:22
обработка строковых данных chainik1 Помощь студентам 0 12.12.2010 11:42
Aлгоритм шифрования строковых литералов. ATAMAN200 Общие вопросы C/C++ 2 24.09.2010 12:41
Обработка строковых данных >>arty<< Помощь студентам 4 15.01.2010 23:07