中文在UTF-8编码下占3个字节,在GBK编码下占2个字节。
以下程序是在UTF-8编码下,所以中文占3个字节。

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

int main(int argc,char *argv[])
{
char *s = "扔应怎属是";
char *result = "他是怎么了";
printf("%d",strlen(s));
int index=0;
int i,j;
printf("%c%c%c\n",s[1],s[2],s[3]);
for(i=0;result[i]!='\0';i++)
{
for(j=0;s[j]!='\0';j++)
{
if(s[j] == result[i] && s[j+1]==result[i+1] && s[j+2]== result[i+2])
{
index = i+2;
break;
}
}
if(index !=0)
{
break;
}
}
char *str = (char *)malloc(sizeof(char)*index);
char garbage[20] = {0};
memcpy(str,result,index);
sprintf(garbage,"test/%s",str);
printf("%s",garbage);
return 0;
}

以上程序通过GCC编译成功。
如果是GBK编码,需要将程序改为2个字节的。