Hi all,
I got a problem with this question:
Read the string "hello" include the NULL character in the end of string.
How can I do it ?

The NULL character is '\0', or just simply 0. Use while loop to check each character in the string.

Thanks,
Could you give me the sample codes to do this ? Can we just use strcmp function for this situation ? And which is the length of null character 0 or 1 ?

>>Read the string "hello" include the NULL character in the end of string.

What exactly does that mean? Read it from where?

Edited 6 Years Ago by Ancient Dragon: n/a

>>Read the string "hello" include the NULL character in the end of string.

What exactly does that mean? Read it from where?

That's what I'm wondering ? This is the original request: The ID field is a string, which has 6 character (include the NULL character in the end): "hello".
That means we need to read "hello" string and the NULL character to ID field so that length of ID field is 6 character. But I don't know how can we do it ?

Read it from the keyboard, a data file, socket stream, or what?
From a data file. ifstream will put the null terminating character at the end for you. You don't have to do anything with that.

#include <fstream>
#include <iostream>
using std::ifstream;
using std::cout;

int main()
{
   ifstream in("filename.txt");
   if( in.is_open() )
   {
      char id[6];
      in >> id;  // read the ID from a data file.
      cout << id << '\n';
   }
}

Edited 6 Years Ago by Ancient Dragon: n/a

I can't really figure it out. Why do you (Ancient Dragon) keep posting C++ code in the C section? Am I missing something?

Oops! my mistake, I was thinking we were in the c++ forum. Sorr for that. But the concept is the same.

#include <stdio.h>

int main()
{
   char id[7];
   FILE* fp = fopen("filename.txt", "r");
   fgets(id, sizeof(id), fp); // read the string
   // fgets() puts '\n' at the end so we need to remove it
   if( id[strlen(id)-1] == '\n')
       id[strlen(id)-1] = '\0';
   printf("%s\n", id);
}

Read it from the keyboard, a data file, socket stream, or what?
From a data file. ifstream will put the null terminating character at the end for you. You don't have to do anything with that.

#include <fstream>
#include <iostream>
using std::ifstream;
using std::cout;

int main()
{
   ifstream in("filename.txt");
   if( in.is_open() )
   {
      char id[6];
      in >> id;  // read the ID from a data file.
      cout << id << '\n';
   }
}

Many thanks, Ancient Dragon.
I only need copy "hello" string to ID field ("hello" is a constant), but "hello" only has 5 characters, while the length of ID field is 6 characters. So I need the last character of ID field is NULL. When I used strlen function to get the length of ID field, the result is 5, not 6. What's my problem? Is the length of NULL character is zero?
Here's my code:

char IDField[6];
strcpy(IDField, "hello");
IDField[5] = '\0'; //assign last character to NULL

Edited 6 Years Ago by widapol: n/a

then just use strcpy() -- it will put the null character at the end for you.

char id[6];
strcpy(id, "Hello");

Got it ! Thanks, man.

This article has been dead for over six months. Start a new discussion instead.