2015-05-31 3 views
0

У меня проблема с исходным кодом. Когда я это делаю, у меня нет выходных данных, почему? Как я могу решить это, пожалуйста?
Спасибо!C - Нет выходных данных

#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 

void ft_split_whitespaces(char *str); 

int main(int argc, char** argv) 
{ 
    ft_split_whitespaces("Hello\nThis is\ta\nWord"); 
    return (0); 
} 

void ft_split_whitespaces(char *str) 
{ 
    int i; 

    for (i = 0; str[i] != '\0'; ++i); 
    { 
     if (str[i] == '\n' || str[i] == '\t' || str[i] == ' ') 
     { 
      printf("Ascii table (int): %d, Ascii table (char): %c\n", str[i], str[i]); 
     } 
    } 
} 

ответ

2

типографская ошибка - точка с запятой в конце for означает пустое заявление - for (i = 0; str[i] != '\0'; ++i);.

Исправление: удалите точку с запятой и не ставил одну даже вместо пустого оператора в конце for/while/if - использовать { /* intentionally empty */} вместо

for (i = 0; str[i] != '\0'; ++i) // no semicolon here ever. 
{ 
    if (str[i] == '\n' || str[i] == '\t' || str[i] == ' ') 
    { 
     printf("Ascii table (int): %d, Ascii table (char): %c\n", str[i], str[i]); 
    } 
} 
+0

О, мой бог, спасибо ^^ Я не знаю, почему я положил это здесь * - * – user3208656

3

Что сказал Алексей.

Чтобы избежать этого, я хотел бы использовать этот вид фигурной распорки:

for (i = 0; str[i] != '\0'; ++i){ 
    if (str[i] == '\n' || str[i] == '\t' || str[i] == ' '){ 
     printf("Ascii table (int): %d, Ascii table (char): %c\n", str[i], str[i]); 
    } 
} 

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

+0

[Египетские скобки] (http://blog.codinghorror.com/new-programming-jargon/) (также знаю K & R скобки/стиль) - это еще один способ помочь себе избежать утверждений с точкой с запятой ... Пока поддерживается руководство по стилю кодирования (обычно C/JavaScript). Кроме того, просмотр времени компиляции является другим (и более безопасным) способом. –

+1

@Alexei: Никто не исключает другого. аргумент ishyfishy для стиля стиля K & R на самом деле довольно убедитель. – chqrlie

Смежные вопросы