《C语言及程序设计》程序阅读——字符数组与字符串处理

返回:贺老师课程教学链接


阅读下面的程序,说出输出结果。
与此同时,从一些程序中,学习处理问题的方法。
对于理解不了的程序,请通过单步执行的方法进行观察,达到学会的目的。
这一讲涉及的文字处理,是计算机应用广泛的一个领域,相关的方法,应该要学会。

(1)
#include <stdio.h>
int main( )
{
    char b[]="ADCEBADEFG";
    char *chp=&b[9];
    while(--chp>&b[2])
        putchar(*chp);
    putchar('\n');
    return 0;
}

(2)
#include <stdio.h>
int main( )
{
    char s[]="ABCD",*p;
    for(p=s+1; p<s+4; p++)
        printf("%s\n",p);
    return 0;
}

(3)
#include <stdio.h>
int main( )
{
    char  ch[]= {"12yue25ri"};
    int   i,s=0;
    for(i=0; ch[i]>='0' && ch[i]<='9'; i++)
        s=10*s+ch[i]-'0';
    printf("%d\n",s);
    return 0;
}

(4)
#include <stdio.h>
int main( )
{
    char *s="12134211";
    int v[4]= {0,0,0,0} ;
    int k,i;
    for(k=0; s[k]; k++)
    {
        switch(s[k])
        {
        case '1':
            i=0;break;
        case '2':
            i=1;break;
        case '3':
            i=2;break;
        case '4':
            i=3;break;
        }
        v[i]++;
    }
    for(k=0; k<4; k++)
        printf("%d",v[k]);
    return 0;
}

(5)
#include <stdio.h>
int main( )
{
    int i=0;
    char a[ ]="abm", b[ ]="aqid", c[10];
    while (a[i]!='\0' && b[i]!='\0')
    {
        if (a[i]>=b[i])
            c[i]=a[i]-32 ;
        else
            c[i]=b[i]-32 ;
        i++;
    }
    c[i]='\0';
    puts(c);
    return 0;
}

(6)当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。
#include <stdio.h>
int main( )
{
    char s[80];
    int i=0;
    gets(s);
    while (s[i]!='\0')
    {
        if (s[i]<='z' && s[i]>='a')
            s[i]='z'+'a'-s[i] ;
        i++;
    }
    puts(s);
    return 0;
}

(7)运行下面程序输入数据时,分别输入aid和and,输出结果是什么?
#include <stdio.h>
int main( )
{
    int i,s;
    char s1[100],s2[100];
    printf("input string1:\n");
    gets(s1);
    printf("input string2:\n");
    gets(s2);
    i=0;
    while ((s1[i]==s2[i])&&(s1[i]!='\0'))
        i++;
    if ((s1[i]=='\0')&&(s2[i]=='\0'))
        s=0;
    else
        s=s1[i]-s2[i];
    printf("%d\n",s);
    return 0;
}

(8)
#include <stdio.h>
int main( )
{
    int n=0;
    char str[80]="Beijing-China 2008";
    printf("%s\n",str);
    while(str[n]!='\0')
        str[n++]=(str[n]>='a'&&str[n]<='z')?(str[n]-'a'+'A'):str[n];
    printf("%s\n",str);
    return 0;
}

(9)
#include <stdio.h>
#include<string.h>
char cchar(char ch)
{
    if (ch>='A'&&ch<='Z')
        ch=ch-'A'+'a';
    return ch;
}
int main()
{
    char s[]="ABC+abc=defDEF",*p=s;
    while(*p)
    {
        *p=cchar(*p);
        p++;
    }
    printf("%s\n",s);
    return 0;
}

(10)
#include <stdio.h>
#include<string.h>
void fun(char *p, int n)
{
    char *i,*j,t;
    for (i=p,j=p+n-1; i<j; i++,j--)
    {
        t=*i;
        *i=*j;
        *j=t;
    }
}
int main()
{
    char s[]="1234567890";
    fun(s,strlen(s));
    puts(s);
    return 0;
}

(11)
#include <stdio.h>
#include<string.h>
void  del (char *s,char c )
{
    int i,j;
    for (i=j=0; s[i]!='\0'; i++)
        if (s[i]!=c)
            s[j++]=s[i];
    s[j]='\0';
}
int main()
{
    char s[]="the c language";
    del(s,'a');
    puts(s);
    return 0;
}

(12)阅读下面的程序,对于不认识的函数,通过搜索引擎学会使用
#include <stdio.h>
#include<string.h>
# include "ctype.h"
void space(char *str)
{
    int i ,t ;
    char ts[81];
    for(i=0,t=0 ; str[i]!='\0' ; i+=2)
        if(!isspace(*(str+i))&&(*(str+i)!='a'))
            ts[t++]=toupper(str[i]) ;
    ts[t]='\0' ;
    strcpy(str ,ts) ;
}
int main( )
{
    char s[81]= {"abcdefg"} ;
    space(s);
    puts(s);
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值