RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
【C语言刷题1】-创新互联

写了几道和字符串指针有关的编程题,和大家分享一下

成都创新互联公司长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为汉中企业提供专业的成都网站设计、成都网站建设、外贸网站建设汉中网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
1. 获取字符串长度

思路:

[1]获取字符串

会发现相当于实现strlen函数的功能, 如果使用scanf通过占位符%s输入会导致遗漏空格,如果字符串中含有空格就会导致错误,因此我们通过指针用循环的方式获取字符串

char ch[20];
 char* m=ch;        //指向字符数组ch的首元素
 while((*m=getchar())!=EOF)//当考虑空格输入时用while循环,循环终止条件EOF当输入\n时满足
 {
     m++;
 }
 *(m-1)='\0';//在字符串末尾放入\0方便后续计算字符串长度

 [2]计算字符串长度

定义一个新的指针指向字符串首元素,指针++往后遍历整个字符串,直到遇到字符串结束标志'\0'为止

代码实现:
#includeint main() 
{
    int a=0;
    
    char ch[20];
    char* m=ch;        //指向字符数组ch的首元素
    while((*m=getchar())!=EOF)//当考虑空格输入时用while循环,循环终止条件EOF当输入\n时满足
    {
        m++;
    }
    *(m-1)='\0';
    char* x=ch;
    while (*x!='\0')
    {
        x++;
        a++;
    }
    printf("%d",a);
    return 0;
}
 2.复制部分字符串

思路:通过一个指针找到开始复制的第一个字符,然后遍历字符串,并将每个字符依次复制

代码实现:

#includeint main()
{
    int m=0,i=0;
    char ch1[30];
    char ch2[30];
    scanf("%s",ch1);
    scanf("%d",&m);
    char* str=ch1;
    str+=m-1;
    while((*str)!='\0')
    {
        
        ch2[i++]=*str;
        str++;
    }
    ch2[i]='\0';
    printf("%s",ch2);
    return 0;
}
3. 

思路:通过之前的方式获取整个字符串,然后设立一个指针从头开始遍历整个字符串,另外定义一个整形变量统计字符数量,如果遇到空格指针++,如果不是空格指针++同时整形变量++

代码实现:

#includeint main() {
    char ch[20];
    char* str=ch;
    while((*str=getchar())!=EOF)
    {
        str++;
    }
    *(str-1)='\0';
    char* x=ch;
    int a=0;
    while(*x!='\0')
    {
        if(*x==' ')
            x++;
        else
        {
            x++;
            a++;
        }

    }
    printf("%d",a);
    return 0;
}
4.

思路:为了实现多组输入,用while循环,scanf输入放在循环条件部分,循环条件为输入scanf()!=EOF,再根据字符串比较大小函数strcmp()比较判断用户名和密码是否正确

代码实现:

#include#includeint main() {
   char ch1[10],ch2[10];

    while(scanf("%s %s", ch1, ch2)!=EOF)
    {
        
        if (strcmp(ch1, "admin") == 0 && strcmp(ch2, "admin") == 0)
            printf("Login Success!\n");
        else
            printf("Login Fail!\n");
    } 
    return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:【C语言刷题1】-创新互联
URL标题:http://sczitong.cn/article/cecgdd.html