C语言 字符串问题 求大神解救

作者&投稿:暴陆 (若有异议请与网页底部的电邮联系)
C语言字符串问题求大神解答~

char的定义是字符,不是字符串,如果不加[],就不能赋值字符串,
而#define是直接定义字符串,相当于用s替代后面长的

char str[] ="ABCD",*p=str;


so,
char str[5]={'A','B','C','D','\0'} ;

so,
*( p+4) = '\0' = 0 ;

printf("%d
", *(p+4)) - > printf("%d
", 0 ) ;

strlen(s) , 从s开始,一直到 '\0' ,有几个算几个。

strlen("s
\016\0end") = 3
-> "s
\016\0\end" = { 's', '
' , '\016', '\0', 'e', 'n', 'd', } ;

\016 是八进制形似的转义!至于,转义字符有几种形式,自己BAIDU吧。

#include<stdio.h>

void find(char a[]);

int main()

{

char a[99999];

printf("输入一行字符串
");

gets(a);

find(a);

getch();

}

void find(char a[])

{

int i,count,j,k=0,q=0,word=0;

for(i=0;a[i]!='\0';i++)

{

count=0;

for(j=i;a[j]>='A'&&a[j]<='Z'||a[j]>='a'&&a[j]<='z';j++)

{

count++;

}

if(word<count)

{

word=count;

k=i;

q=j;

}

}

for(i=k;i<q;i++)

printf("%c",a[i]);

}



void find(char a[])
{
        int i,count,j,k,q,word=0;
        k=0; //
        for(i=0;a[i]!='\0';i++)
        {
                count=0;
                for(j=i;a[j]!=' '&& a[j]!='\0';j++) //
                {
                        count++;
                }
                if(word<count)
                {
                        word=count ; //
                        k=i;
                        q=j;
                }
                i=j; //
        }
        for(i=k;i<q;i++) //
                printf("%c",a[i]);
}


char a[99999];

数组空间太大了。改为a[99]试试吧


巧家县17789719702: 关于C语言字符串处理的问题.求高手帮忙!!! -
梅哗爱可: 你的程序考虑的不周全,假如字符串首位的空格都不止一个,那你这种方法就不够完善另外对于字符串来说,一般利用'\0'判断字符串长度而不是直接给出长度 你...

巧家县17789719702: C语言字符串简单问题 求解~ -
梅哗爱可: 其实已经出错了,我们看看栈:|----------'1''2''3''4''5''\0''1''2''3''4''\0'******| 栈顶 c2起始地址 c1起始地址 栈底 高地址 在X86架构的体系中,栈底为高地址,并向低地址增长.当执行strcpy(c1, c2)时,c1开始的内存地址,被c2开始的内存地址的数值覆...

巧家县17789719702: c语言字符串输入的问题,求解 -
梅哗爱可: 编译器问题. VS 不允许使用scanf 而要用scanf_s 你的代码 scanf(“%s”,a,10)是错误的. 需要 scanf_s("%s",a,10); 对于%c和%s的,都需要加最大长度限定. 不方便,但是VS就这么规定 没办法. 要么不用VS,要么接受

巧家县17789719702: 一道C语言字符串题,求解,简单说一下过程 -
梅哗爱可: 这里要注意的字符参与算术运行.是用字符的ASCII码来运算的.如:'0'的ASCII码是48,依次为:1是49……

巧家县17789719702: c语言字符串问题 -
梅哗爱可: #include int main(void) { int flag = 0; char s[128]; gets(s); if (strstr(s, ".sch") != NULL) { flag = 1; } else { flag = 0; } printf("%d\n", flag); return 0; }

巧家县17789719702: C语言输入字符串问题 -
梅哗爱可: while(scanf("%c",&a[i])==1)这里是以%c字符格式进行接受的,所以你输入11 12 13回车后,一个%c带走一个字符.而且目标数组a也是字符数组char a[100](这个100是最大容量,放的数据小雨100就可以,count起到计数的作用,或者说能...

巧家县17789719702: C语言编程求助 字符串问题
梅哗爱可: #include<iostream>#include<string>using namespace std;int main(){int n;string s,min,max;cout<<"input n:";cin>>n;cout<<"input string:"<<endl; cin>>s; max=s; min=s; n--;while(n--){ cin>>s; if(s.length()>max.length()) max=s; if(s.length()<min....

巧家县17789719702: C语言简单的字符串、字符处理问题求助 -
梅哗爱可: 第一题:简单点的做法是申请个足够大的char数组.比如假定最多1000种字串,每串最大长度为20,就申请word[1000][20],以及一个num[1000],一个字串个数wordNum,初始化置为0.然后每读到一个字串就d到word中检测有没有重复的,有...

巧家县17789719702: 求教一个C语言中字符串的处理问题 -
梅哗爱可: 这其实就是字符串数组插入,定义一个足够大的数组存放第一个串,然后依次...

巧家县17789719702: 一个C语言字符串输入问题 -
梅哗爱可: 我也试了一下,没问题,你到底是什么问题,是要在s1或s2中输入空格吗?那么用gets函数;gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符. 其调用格式为:gets(s);其...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网