Форум программистов, компьютерный форум CyberForum.ru

Проверка, пустая строка или нет - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 91, средняя оценка - 4.97
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
04.12.2011, 11:28     Проверка, пустая строка или нет #1
Здравствуйте, подскажите как реализовать проверку на пустую строку??
C++
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
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
 
main()
{
char x[100], n[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt"); 
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
   
   
  fscanf( fi, "%s", &n );
  fscanf( fi, "%s", &x );
  printf("%s\n",n);
  printf("%s\n",x);
    
  if (strcmp(n, x))
     {
         printf("true");
         }
     else
     {
        printf("false");
 
         }
 
     Sleep(5000); 
 
   fclose(fi); 
   fclose(fo);
 
 
  return 0;
}
Пробывал вот так
C++
1
if (strcmp(n, "\n"))
все равно не получается.
объясните почему не работает?
файл mix2.txt выглядит так:
Код
mix
mix
mix



mix
mix

mix
mix
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 11:31     Проверка, пустая строка или нет #2
C
1
2
3
4
if ( ! strlen ( s )  )
       printf ("\n Yes");
else
       printf ("\n No");
Добавлено через 1 минуту
Цитата Сообщение от Myk21 Посмотреть сообщение
Пробывал вот так
На самом деле, если пустая строка, то первый символ '\0'
Можно еще так
C
1
2
3
4
if ( ! s[0] )
       printf ("\n Yes");
else
       printf ("\n No");
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
04.12.2011, 12:03  [ТС]     Проверка, пустая строка или нет #3
Пробывал 2 варианта когда в файле mix первая строка пустая и когда первая строка не пуста. в обеих случаях принтует" No".
C++
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
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
main()
{
char x[100], n[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt");
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
   
   
  fscanf( fi, "%s", &n );
//  fscanf( fi, "%s", &x );
  printf("%s\n",n);
//  printf("%s\n",x);
    
if ( ! n[0] )
       printf ("\n Yes");
else
       printf ("\n No");
 
 
 
 
     Sleep(5000); 
 
   fclose(fi); 
   fclose(fo);
 
 
  return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 12:10     Проверка, пустая строка или нет #4
Значит строка не пустая
http://codepad.org/coQf5vdM
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 01:01  [ТС]     Проверка, пустая строка или нет #5
Может быть что fscanf( ); не купирует пустые строки, а просто пропускает их ? Если да. Как скопировать пустую строку??
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.12.2011, 10:46     Проверка, пустая строка или нет #6
Цитата Сообщение от Myk21 Посмотреть сообщение
Как скопировать пустую строку??
C
1
2
3
char buf (1024);
 
fgets (buf,1024,in_file);
Добавлено через 36 секунд
Еще можно выполнить проверку работы функции fgets
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 23:25  [ТС]     Проверка, пустая строка или нет #7
C++
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
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
main()
{
 char  n[100], q[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt");
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
 
   fgets(n,100,fi);
  
if( strcmpi(n, "\0")){
    printf("true\n");
    }
  else
  {
      printf("false\n");
      }
 
         Sleep(2000);
 
 
 
 
   fclose(fi); 
   fclose(fo);
}
Почему всегда true принтует ??
когда 1я строка пустая или заполнена в файле mix2.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
05.12.2011, 23:27     Проверка, пустая строка или нет #8
C++
1
if( ! strcmpi(n, "\0")){
strcmp возвращает ноль если строки равны.
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 23:39  [ТС]     Проверка, пустая строка или нет #9
C++
1
if(strcmp(n, "\0")!=0 ){
Все равно true принтует. хоть пуста первая строка в файле mix2 хоть заполнена.
Может это не правильно "\0" строка пуста? както по другому конец строки обозначать можно?
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
05.12.2011, 23:44     Проверка, пустая строка или нет #10
Myk21, читайте, что вам пишут.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 13:38     Проверка, пустая строка или нет
Еще ссылки по теме:

C++ Проверка, записано ли значение в элементе массива или нет?
Пустая строка в функции C++
Проверка является ли строка числом полностью числом или нет? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 13:38     Проверка, пустая строка или нет #11
C
1
2
3
4
5
6
char s[BUFSIZ];
 
if ( ! s[0] )
   printf ("True"); // Пустая
else
   printf ("False");
Yandex
Объявления
06.12.2011, 13:38     Проверка, пустая строка или нет
Ответ Создать тему
Опции темы

Текущее время: 03:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru