c语言,请大神赐教,汉字字符串数组赋值指针数组后的如何输出单个汉字?

输出“何”字

中文就是用两个字节表示一个汉字。方法不止一种:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[]="如何控制指针数组";
    int i,j,len=strlen(str);
    char words[len/2][3];
    for(i=0,j=0;i<len;i+=2,j++)
    {
        words[j][0]=str[i];
        words[j][1]=str[i+1];
        words[j][2]=0;
    }
    printf("输出单个汉字,2个字符为一个汉字:\n");
    for(i=0;i<len/2;i++)
        printf("%s\n",words[i]);
    return 0;
}

追问

请您可以通过二维指针控制吗?

程序要求如下
文字回复大限制,我分段了,对得上的
#include

int main()
{
11

char aa[]="字义字符数组,并赋值汉字";
char ab[]="通过二维指针数组取前面所定义的字符串数组名";
char ac[]="然后按要求输出";
char ad[]="要求:输出指针所指的字符串数组中的单个汉字";
char ae[]="如要求输下面字符串数组的最后一个字"教",且能调整输出该数组中的汉字元素";
char af[]="求大神赋教";
22

int a1,a2,i;
char *a[3][2];

a[0][0]=aa;
a[0][1]=ab;
a[1][0]=ac;
a[1][1]=ad;
a[2][0]=ae;
a[2][1]=af;
i=0;
printf("输出>>>>%c\n",(*a[0][0]+i));//ddssss
printf("输出>>>>%c\n",(*a[0][0]+i+1));
33

printf("\n");
printf("\n");
return 0;
} 完

像就样的要求能否输出单个汉字

??

追答

刚才我写的,是将纯中文字符串中单独的中文字打印出来,中文字是占用2个字节,我是直接将一个中文字转成独立的字符串。

如果你非要把一个汉字拆成2个字符打印也是可以的。比如下面我写的例子:

char a[2]="中";
printf("当做字符串打印:%s\n",a);
printf("分成两字符打印:%c%c",a[0],a[1]);
//两种都可以打印出中文“中”字。

至于用指针,你想用二维指针数组指向每一个字符,再通过改变指针指向,来每次打印2个字符,可以,但没必要,那和遍历数组没有区别。

真要用指针,用指针数组指向每个字符串首地址就行了。比如:

int main()
{
    int i;
    char  aa[]="字义字符数组,并赋值汉字";
    char  ab[]="通过二维指针数组取前面所定义的字符串数组名";
    char  ac[]="然后按要求输出";
    char  ad[]="要求:输出指针所指的字符串数组中的单个汉字";
    char  ae[]="如要求输下面字符串数组的最后一个字且能调整输出该数组中的汉字元素";
    char  af[]="求大神赋教";

    char *a[6];

    a[0]=aa;
    a[1]=ab;
    a[2]=ac;
    a[3]=ad;
    a[4]=ae;
    a[5]=af;

    for(i=0;i<6;i++)
        while(*a[i]!=0)
        {
            printf("%c",*a[i]);//连续打印2个字符为一个汉字
            a[i]++;
            printf("%c",*a[i]);
            printf("\n");
            a[i]++;
        }

    return 0;
}

追问

哦,好吧,谢谢你

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答