输入字符串,保留数字字符

img


输入字符串,保留数字字符,将得到的数字进行平方。请各位指点一下错误并提供详细解决方案。

  • 字符指针 需要一个字符一个字符判断,你这只判了第一个字符,导致死循环了

    img

代码参考如下:


#include<iostream>
using namespace std;

int trans(char *s)
{
    int sum = 0;
    while (*s++ != '\0')
    {
        if (*s >= '0' && *s <= '9')
            sum = sum * 10 + (*s - '0');
    }
    cout << sum << endl;
    return sum * sum;
}

int main()
{
      char s[100];
      cin >> s;
      cout << trans(s);
      return 0;
} 

你的程序死循环了,因为s指针没有移动,在while循环内最后将指针向后移动即可。
方法是有返回值的,应该是将结果值返回在main中输出吧。

#include<iostream>
using namespace std;
int trans(char *s)
{
    int sum = 0;
    while (*s!= '\0')
    {
        if (*s >= '0' && *s <= '9')
            sum = sum * 10 + *s - '0';
        s++;
    }
    //cout << sum*sum << endl;
    return sum;
}
int main()
{
      char s[100];
      cin >> s;
      int sum=trans(s);
      cout << sum*sum << endl;
      return 0;
} 
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632