현재 위치 - 중국 분류 정보 발표 플랫폼 - 비즈니스 서비스 정보 - C 언어: 문자열에서 양수와 음수를 꺼내서 합산합니다.

C 언어: 문자열에서 양수와 음수를 꺼내서 합산합니다.

제 컴파일 환경은 C89 표준이고, bool 유형이 없어서 int 유형을 inNumber로 직접 재정의한 것입니다.

#includelt;

#includelt;

int sumInt(char *s)

{ int sum=0, t=0; char *p=s; int inNumber=0;? //inNumber를 음수로 표시합니다. //문자열에서 양수와 음수를 꺼내서 합합니다. while(*(p -1 )!='\0') //마지막 숫자도 얻을 수 있음이 보장됩니다. { if('0'lt;=*pamp;amp;*plt;='9') //? 이 숫자를 t에 넣습니다. {

t=10*t *p-48;? // t*10은 carry -48과 동일하며 문자 '0'을 '9로 변환합니다. '를 0부터 9까지의 숫자로 변환< /p>

if(*(p-1)=='-') //음수인 경우

inNumber=1 } else / /숫자가 아니면 이전 t를 합계에 더하고 t를 지웁니다. {

if(inNumber==1)? //음수입니다

t =-t;

sum=sum t;

t=0;

inNumber=0 } p; return sum;

< p>}

int main()

{ char s[1000 1]; gets(s) printf("d\n", sumInt(s)); ;

}

< p>원래 질문을 따른다면 두 주석 사이에 코드를 추가할 수 있습니다:

while(*(p-1)!=' \0') { if('0'lt;=*pamp ;amp;*plt;='9')? {

t=10*t *p-48;

< p>if(*(p-1)=='-' )?

inNumber=true; } else? {

if(inNumber=true)

< p>t=-t;

sum =sum t;

t=0

inNumber=false }

< p>

sum=sum t;

여기에 문장을 추가할 수 있습니다

printf("d\n", t);

< p>t 값의 변화를 관찰하면 실행 중인 프로세스를 더 잘 이해할 수 있습니다.