在C中将Character数组转换为Int数组

时间:2016-09-23 20:29:46

标签: c arrays debugging char int

我在将一行字符转换为C中的int数组时遇到问题。我正在从文件中读取行,其中一行是由逗号和空格分隔的数字。我有一个循环检查所有字符,如果它是一个数字,它将它放在一个单独的数组,如果不是它只是继续。但是,输出似乎根本不正确。以下是我的代码。

#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 200
#define SIZE 10
#define FILENAME "file.txt"


char *trimwhitespace(char *str)
{
  char *end;

  // Trim leading space
  while(isspace(*str)) str++;

  if(*str == 0)  // All spaces?
    return str;

  // Trim trailing space
  end = str + strlen(str) - 1;
  while(end > str && isspace(*end)) end--;

  // Write new null terminator
  *(end+1) = 0;

  return str;
}

int main(void)
{
    //disable output buffering on standard output.
    setbuf( stdout, NULL );

    int array [SIZE];
    FILE  *dataFile;
    char buffer[BUFSIZE];
    int lineNo = 0;

    int x= 0;

    char gc[BUFSIZE];

    //open the file
    puts("opening file");
    dataFile = fopen( FILENAME, "r" );
    if( dataFile == NULL )
    {
        fprintf( stderr, "file not found " );
        return 1;
    }

    puts("reading file");

    while( !feof( dataFile ) )
    {

        fgets( buffer, BUFSIZE, dataFile );
        ++lineNo;

        strcpy( gc,trimwhitespace( buffer ) );
        int y = 0;
        for( int i = 0; i < BUFSIZE; i++ )
        {
            if( isdigit( gc[i] ) )
            {
                int array[y];
                printf("%d ", array[y]);
                y++;
            }
            else if( gc[i] == " " || gc[i] == NULL )
            {
                continue;
            }
        }
        printf("\n");
    }

    fclose( dataFile );

    return 0;
}

0 个答案:

没有答案