Все работает, но надо чтобы когда мы вводили например: -4 конфеты и -4 яблока. -4 выводилось один раз, а не дв - C (СИ)
Формулировка задачи:
#include <stdio.h>
int vy_minus ( char str [], int i );
int main() {
//-------------------------
//printf ( "%i", 'z' );
char
str[256] = " ( -4 hufdjkfjdxknj -3.5 jjkkjj -4 -9 ) ";
/*
printf("Введите строку : "); //ввели строку
gets(str);
//*/
printf("%s\n", str);
// printf(str);
// 1. пройдем по строке от начала слова до конца слова
int i = 0;
do {
i = vy_slovo ( str, i ); // в конце поиска вернуть 0
} while ( i );
return 0;
//-------------------------
} // main
int vy_slovo ( char str [], int i ) {
//-------------------------
char slovo[256];
char s;
int j = 0;
for( i ; str [ i ] ; i ++ ) { // знак в строке
/*
1. ищем начало слова - минус
2. записываем слово (только цифры и .)
*/
s = str [ i ]; // символ
if ( ! j )
{ // начало слова
if ( s == '-' )
{ // первая буква - минус
slovo [ j++ ] = s;
}
continue;
}
//
if ( ( s >= '0' && s <= '9' ) || s == '.' )
{ // это наша буква!
slovo [ j++ ] = s;
}
else
{ // это не буква
// если слово не началось - ничего не делаем (идем к след. символу сторки)
// иначе проверяем посл. б и выводим слово
if ( j!=0 )
{ // это уже конец слова
slovo [ j ] = 0;
printf ( "[%s]\n", slovo );
return i;
}
}
} // for
return 0;
//-------------------------
} // vy_slovoРешение задачи: «Все работает, но надо чтобы когда мы вводили например: -4 конфеты и -4 яблока. -4 выводилось один раз, а не дв»
textual
Листинг программы
str[256] = " ( -4 hufdjkfjdxknj -3.5 jjkkjj -4 -9 ) ";