关于c++的选择程序的小疑点,求大神!

关于c++的选择程序的小问题,求大神!!
#include<stdio.h>
int main()
{
int x,i;
char *str1[10],s[10],str[10][10];
scanf("%s",s);
for(i=0;i<10;i++)
str1[i]=str[i];
for(i=0;s[i]!='\0';i++)
x=i-1;
for(i=x;i>=0;i--)
{   
switch(s[i])
{
case '0':str1[i]="zero";break;
case '1':str1[i]="one";break;
case '2':str1[i]="two";break;
case '4':str1[i]="four";break;
case '5':str1[i]="five";break;
        case '6':str1[i]="six";break;
case '7':str1[i]="seven";break;
case '8':str1[i]="eight";break;
case '9':str1[i]="nine";break;
}
}
for(i=0;i<=x;i++)
printf("%s\t",*str1[i]);
printf("\n");
return 0;
}
这是我写的一个程序,要求是输入字符串,比如输入“123”,输出one two three,可我的程序在vc6.0上没错误,就是老崩,谁能告诉我错在哪?应该怎么改正?

------解决方案--------------------
引用:
无聊,帮你调好了, 楼主看看字符串处理函数吧

C/C++ code?123456789101112131415161718192021222324252627282930#include<stdio.h>int main(){    int x,i;    char *str1[10],s[10],str[10][10];    scanf("%s",s);    ……

楼上正解