Criar uma nova string com os mesmos caracteres que a string passada, só que sem o caractere ignorado;
Retirar os zeros à frente da string resultante, seja manualmente ou usando a expressão regular /^(0+)/, que checa se há um ou mais zeros à frente da string formada.
É muito importante manter a string o tempo todo sem converter para inteiro porque não vai caber.
#include<string.h>#include<stdio.h>intmain(){int n, p;char D, N[101], resposta[101];while(scanf("%c%s\n",&D,&N)!= EOF){if(D =='0'&&!strcmp(N,"0")) break; p =0; n =strlen(N);memset(resposta,'\0',sizeof(resposta));for(int i =0; i < n; ++i){if(N[i] != D) resposta[p++] = N[i]; } p =0; n =strlen(resposta);while(p < n){if(resposta[p] !='0') break;++p; }if(p == n){printf("0\n"); }else{strcpy(resposta, resposta + p);printf("%s\n", resposta); } }return0;}
#include<iostream>usingnamespace std;intmain(){int p;char D; string N, resposta;while(cin >> D >> N){if(D =='0'&& N =="0") break; p =0; resposta ="";for(int i =0; i <N.length(); ++i){if(N[i] != D) resposta +=N[i]; } p =0;while(p <resposta.length()){if(resposta[p] !='0') break;++p; }if(p ==resposta.length()) cout <<0<< endl;else{ resposta =resposta.substr(p); cout << resposta << endl; } }return0;}
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.split('\n');while(lines.length){let [D, N] =lines.shift().trim().split(' ');if(D==='0'&&N==='0') break;N=N.split('').filter((x) => x !=D).join('');let re = /^(0+)/i;let resultado =N.match(re);if(resultado) N=N.replace(resultado[0],'');if(N.length===0) console.log('0');elseconsole.log(N);}
import rewhileTrue:try: D, N =input().strip().split(' ')if(D =='0'and N =='0'):break resposta =''for letra in N:if(letra != D): resposta += letra resultado = re.findall(r'^(0+)', resposta)if(len(resultado)>0): resposta = resposta.replace(resultado[0], '', 1)if(len(resposta)==0):print('0')else:print(resposta)exceptEOFError:break