当前位置: 代码迷 >> C语言 >> 偷C++的题
  详细解决方案

偷C++的题

热度:244   发布时间:2004-10-06 11:30:00.0
以下是引用longhao在2004-10-05 20:44:05的发言:

有个问题,string 是个指针, 不是个常量吗???指向第一个元素所存放的地址,没错吧?

那怎么可以用strlen(string)这样的形式吗??

我写了如下程序,大家指教一下:

int fun(char *string, char c)

{int n=0;

char * pf;

pf=string;

while(*pf!=null)

{ if(*pf==c){n++;pf++)

else pf++;

}

return n;

}

strlen(字符串指针的首地址)=字符串长度 是string.h里的一个函数

除了这么用,我实在不知道strlen函数还可以怎么用


----------------解决方案--------------------------------------------------------
以下是引用knocker在2004-10-05 00:21:23的发言:

补充一点汉字编码的知识

GB2313-80标准

1。汉字有两个字节组成:

2。第一个字节等于该汉字的区码加0xa0;第二个字节等于该汉字的位码加0xa0;

我还是不知道怎么写,你能不能写一个?


----------------解决方案--------------------------------------------------------

我发现了一个有趣的问题:汉字的ASCII码值都是负数,

看看这个:

#include<stdio.h> main() {char a[100]={"中华人民共和国"};int i=0; printf("%s\n",a); while(a[i]!='\0') {printf("%5d",a[i]);i++;} printf("\n"); printf("%d\n",i); getch(); }


----------------解决方案--------------------------------------------------------
为什么TC在窗口模式下可以看到汉字,而在全屏模式下看到的都是乱码?
----------------解决方案--------------------------------------------------------

晕,还没有人做第二题??

难道C真是如此没落?重赏!!!!!!

完成第二题并通过测试的重赏!!!


----------------解决方案--------------------------------------------------------

我不懂什么汉字编码知识,但我根据一个汉字占两个字节,自己写了一个:

#include<string.h>

int fun(char *string,char *str) {int i,j,k,n=0; int a=strlen(string),b=strlen(str); for(i=0;i<a;i+=2) {k=i; for(j=0;j<b;j+=2) if(*(string+k)==*(str+j)&&*(string+k+1)==*(str+j+1)) {k+=2;continue;} else break; if(j>=strlen(str)) { n++;i=k-2;} } return n; }

能得出结果,但这个函数只能用于汉字,对字符就不起作用了。


----------------解决方案--------------------------------------------------------
以下是引用knocker在2004-10-02 00:35:54的发言:

刚才到C++版,看了看,KAI版主出了两道题,C++没人做(不知道是不会还是不愿),

转来大家试试:

一,函数篇 (比较简单,仅提两个问题而已)

问题一: 编写一个程序判定一个字符在一个字符串中出现的次数,如果该字符不出现则返回值 0。

问题二: 编写一个程序判定一个子串在一个字符串中出现的次数,如果该子串不出现则返回值0。

我加上两条件:

1。第一个问题,写成子函数形式:int fun(char *string,char c)

2。第二个问题,写成子函数形式且要能处理汉字:int fun(char *string,char * str)

关于第二个问题的测试数据(如有新的,我会加上,大家也可以跟贴加上):

补充一点汉字编码的知识

GB2313-80标准

1。汉字有两个字节组成:

2。第一个字节等于该汉字的区码加0xa0;第二个字节等于该汉字的位码加0xa0;

1。 char *string="中华人民共和国"; char *str="凸"; 2。 char *string="安句是什么意思?";

char *str='d'; or *str="匆";

三天后我贴上我的代码。

第三天了,怎么还没看到代码?


----------------解决方案--------------------------------------------------------
  相关解决方案