View previous topic :: View next topic |
Author |
Message |
pban92
Joined: 23 Nov 2009 Posts: 38
|
Posted: Mon Dec 21, 2009 6:27 pm Post subject: How to convert int into character |
|
|
How can I convert integer variable, say (integer :: i) into a character variable (character :: i)?
I know that any integer variable (integer :: i) can be converted into real variable (real :: i) by simply doing REAL(i). Is there any similar thing for integer to character variable conversion?
Many thanks,
pban92 |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2819 Location: South Pole, Antarctica
|
Posted: Mon Dec 21, 2009 7:03 pm Post subject: |
|
|
character*10 charvar
integer integervar
write(charvar,'(i10)') intergervar |
|
Back to top |
|
|
cyoung
Joined: 17 Dec 2009 Posts: 1
|
Posted: Mon Dec 21, 2009 10:24 pm Post subject: |
|
|
i remmber doing this during my thesis time. I can't memorize but everything is available online. search the code in Google. _________________ rugby coaching |
|
Back to top |
|
|
EKruck
Joined: 09 Jan 2010 Posts: 224 Location: Aalen, Germany
|
Posted: Tue Nov 23, 2010 12:17 pm Post subject: |
|
|
Hi pban92,
I have just found your question. Here is a function for your purpose:
!-------------------------------------------------------------------------------
CHARACTER*20 FUNCTION cIntToChar(iVal) ! Convert one integer value to a leftbound character string
! COPYRIGHT: Dr. Erwin Kruck, Aalen, Germany, 2010
IMPLICIT NONE
INTEGER iVal ! Given integer value
INTEGER iNum ! Local iVal (counted down)
INTEGER iMinus ! = ONE if iVal negative; else ZERO
INTEGER iNull ! Characher value of Zero
INTEGER nDigits ! Number of digits (without minus sign)
INTEGER I, N, M
iNum = ABS(iVal)
iNull = ICHAR('0')
cIntToChar = ' '
iMinus = 0
IF (iVal .LT. 0) THEN
iMinus = 1
cIntToChar(1:1) = '-'
ENDIF
nDigits = MAX (1+INT (LOG10 (FLOAT (MAX (1,iNum)))), 1) ! Number of digits
DO I= 1, nDigits
N = nDigits -I +1 +iMinus
M = iNum / 10
cIntToChar(N:N) = CHAR(iNull + iNum - M * 10)
iNum = M
ENDDO
RETURN
END
!-------------------------------------------------------------------------------
A function for a real value can be developed very similar.
Erwin |
|
Back to top |
|
|
|