Cでは、指定されたcharの配列で任意の文字をチェックし、それが何であるかに応じて変更したいと思います。たとえば、文字「a」または「A」は「4」(4を表す文字)に変更されます。これは私にとってのコーディング演習です:)
コードは次のとおりです。
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <zlib.h>
#define NUM_BUFFERS 8
#define BUFFER_LENGTH 1024
char buffArrays[NUM_BUFFERS][BUFFER_LENGTH];
int main(int argc, const char* arg[v])
{
const char a[] = "a";
gzFile file;
file = gzopen("a.txt", "rb"); //contains 8 lines of 1024 'a's
int counter = 0;
while(counter < NUM_BUFFERS)
{
gzread(file, buffArrays[counter], BUFFER_LENGTH - 1);
counter++;
}
counter = 0;
while(counter < NUM_BUFFERS)
{
int i = 0;
for( i; i < BUFFER_LENGTH; i++ )
{
int *changed = &buffArrays[counter][i];
if( memcmp(&a, changed, 1) == 0 )
printf("SUCCESS\n");
}
counter++;
}
gzclose(file);
return 0;
}
このコードが「SUCCESS」の部分に到達することはありません。これは私にどちらかを言います
(1)変更された値が正しいものを指していない(2)ポインタ&aが間違っている(3)私は完全に間違っており、それは別のものです
どんな助けでもいただければ幸いです。