C string文字列の実装

4735 ワード

Cでstring文字列を実装し、typedefを使用してstringをchar*として定義します.
#include 
#include 
#include <string.h>

typedef char* string;

string get_string(string);

int main(void)
{
    string name = get_string("What's your name?
"); printf("Hello, %s!
", name); printf("strlen: %d
", strlen(name)); return 0; } string get_string(string msg) { int len = 8; string str = (string)malloc(sizeof(char)*len); // len char *ptr = str; // ptr str char ch; int i = 0; printf("%s", msg); while ((ch = getchar()) != '
') // { *ptr++ = ch; // ch *ptr ptr i++; if (i == len) // { string tmp = str; // tmp str len *= 2; // str = (string)malloc(sizeof(char)*len); // str strcpy(str, tmp); // tmp str ptr = str + i; // ptr str i free(tmp); // tmp = NULL; } } *ptr = '\0'; // '\0' return str; }