Wrannert 2022-09-06 18:26 采纳率: 90%
浏览 22
已结题

C语言字符串,数组相关问题

 # 题目:要求将字符串中的每一段数提取出来存到数组a中,然后将a数组输出

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
    char string[99];    
    scanf("%s", string);
    char* p = string;
    int i = 0;
    int n = 0;
    int m = 0;
    char a[99] ;

    while (p[i] != '\0')
    {
        if ((int)p[i] >= 0) {
            if ((int)p[i] <= 9) {
                n = 10 * n + ((int)p[i]);
            }
        }
        else {
            a[m] = n;
            m++;
            n = 0;
        }
        i++;
    }
    int k = 0;
    while (k<=m)
    {
        printf("%d  ",(int)a[k]);
        k++;
    }
    printf("\n%d", k);
    printf("\n%d", i);
    return 0;
}

 #
 a4d5d8
-52
1
6

#问题出现在了这一段
while (p[i] != '\0')
{
if ((int)p[i] >= 0) {
if ((int)p[i] <= 9) {
n = 10 * n + ((int)p[i]);
}
}
那个n不知道怎么回事在p【i】符合上面的条件时,不能进行 n = 10 * n + ((int)p[i]); 这一步,这是怎么回事呢,调试就是在那直接把这一句略过了

  • 写回答

2条回答 默认 最新

  • 滴水不穿石 2022-09-06 18:44
    关注
    首先你要说明你的最终目的啊,这样别人分析你代码也就没那么累啊
    怎么分配是按数字作为分界点么?
    比如a3 h3 d566
    把他们输出成
    a3
    h3
    d566
    这样么?
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月25日
  • 已采纳回答 6月17日
  • 创建了问题 9月6日

悬赏问题

  • ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
  • ¥60 寻抓云闪付tn组成网页付款链接
  • ¥20 如何通过sentry收集上传Android ndk的崩溃?
  • ¥30 有关数值生成的稳健性探讨
  • ¥20 关于C/C++图形界面设计问题
  • ¥15 QT+Gstreamer框架开发视频采集,无法将waylandsink视频绑定qt窗口
  • ¥15 vs2010开发 WFP(windows filtering platform)异常
  • ¥30 8*8*25的矩阵和1*8*25的矩阵相乘
  • ¥15 Ubuntu20.04主机有两个网口,如何配置将其中一个网口用来接入外网,另一个网口用来给其他设备上网
  • ¥15 ml307r-dl如何实现录音功能