文字列処理

ちょっとポインタと文字列が絡んだ時点でプログラミングがややこしくなってくることに対して、少しばかり実験を試みる。実験の目的は文字列をトークンごとに分割することなんだけれども、その分割された文字列をどう処理するべきかをポインタを用いてどういうふうに置くことができるかを調べた。まだトークンで分割するところまでは行っていない。まだポインタのポインタで複数の文字列を置くだけである。

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

int main(int argc, char *argv[])
{
	int i = 0;
	
	char **str;
	*str = malloc(1024);
	
	strcpy(*str, "That's");
	strcpy(*(str+1), "bird");
	*(str+2) = NULL;
	
	for (i = 0; str[i] != NULL; i++) {
		printf("str[%d] = %s\n", i, str[i]);
	}
	free(*str);
	
	exit(EXIT_SUCCESS);
}

今思ったが、アルゴリズムに凝ってみるのもいいかもしれないけれども、今はUS-ASCIIだけではなくて、UTF-8とか複雑な文字コードがある。だから専用APIを使った方が安心だし確実なのかもしれない。