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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 22:28   #1
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
По умолчанию Строки Си

Дана символьная строка. Оставить в ней только слова, содержащие хотя бы одну букву «А».
программа работает, но не так, она не находит даже букву А в слове....
помогите, что не так, в теории должно пахать....




Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
# define N 100
int main(void)
{
    char str[N];
    int i=0, k=0, j=0, x=0, q=0, p=1;
    printf("Vvedi stroku\n");
    gets (str);
    i=0; 
    while (str[i]!='\0')
    {
          
          if (str[i]==' ') 
          {
                        k=q=i;
                        for (k; k<=i; k++)
                          if (str[i]=='a') j++ ;
                          printf ("j== %d\n\n", j);
                        if (j=0)
                        {   
                            for (q; q<=i; q++)
                             {str[q]=str[k+p];
                              p++;}
                              p=1;
                             j=0;
                        }
          }
          i++;
    }
    puts(str);
    getch();
    return 0;
}
blain вне форума Ответить с цитированием
Старый 27.02.2012, 23:23   #2
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

не люблю в чужом коде разбираться легче свой написать

Код:
#include <string.h>
int main()
{
	char str_in[] = "erefdwa grejja dwwee dwr wew dww w sweweadw ";
	char str_out[100] = {0};
	char *token;
	int len;
	token = strtok (str_in," ");
	while (token != NULL)
	{
		len = strlen(token);
		for(int c=0;c<len;c++)
		{
			if(token[c] == 'a')
			{
				strcat(str_out,token);
				strcat(str_out," ");
				break;
			}
		}
		token = strtok (NULL," ");
	}
	return 0;
}
microbit вне форума Ответить с цитированием
Старый 29.02.2012, 21:12   #3
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
Смех

Цитата:
Сообщение от microbit Посмотреть сообщение
не люблю в чужом коде разбираться легче свой написать

Код:
#include <string.h>
int main()
{
	char str_in[] = "erefdwa grejja dwwee dwr wew dww w sweweadw ";
	char str_out[100] = {0};
	char *token;
	int len;
	token = strtok (str_in," ");
	while (token != NULL)
	{
		len = strlen(token);
		for(int c=0;c<len;c++)
		{
			if(token[c] == 'a')
			{
				strcat(str_out,token);
				strcat(str_out," ");
				break;
			}
		}
		token = strtok (NULL," ");
	}
	return 0;
}

Большое спасибо) выручили)))
blain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10