2017.07.04 02:08


[초급] 문자열 입력받기


01. Char 변수에 문자 입력 받기

1) scanf 사용하기 (기본)
int main()
{
    char c;

    scanf("%c", &c);    // 문자를 입력받아서 변수에 저장
    printf("%c\n", c);    // 변수의 내용을 출력

    return 0;
}

 2) getchar 사용하기
int main()
{
    char c = getchar();    // 문자 하나를 입력받음
    printf("%c\n", c);
    return 0;
}



02. Char 배열에 문자열 입력 받기

int main()
{
    char string1[10];    // 크기가 10인 char형 배열을 선언
    char string2[30];    // 크기가 30인 char형 배열을 선언

    scanf("%s", string1);     // 표준 입력을 받아서 배열 형태의 문자열에 저장
    printf("%s\n", string1);  // 문자열의 내용을 출력

    scanf("%[^\n]s", string2);    // 공백까지 포함하여 문자열 입력받기
    printf("%s\n", string2);

    return 0;
}



03. 메모리 할당하여 문자열 포인터 변수에 문자열 입력 받기

 1) 오류

int main()
{
    char *string = "Hello";    // 문자열 포인터 선언, 문자열 할당

    scanf("%s", string );
    // 실행 에러,
    // 문자열 리터럴의 주소를 가르키는 포인터에 저장된 변수는 읽기만 가능하고 쓰기 불가능합니다.

    printf("%s\n", string );

    return 0;
}

 2) 정상

int main()
{
    char *string = malloc(sizeof(char) * 10);    // char 10개 크기만큼 동적 메모리 할당

    scanf("%s", string);      // 표준 입력을 받아서 메모리가 할당된 문자열 포인터에 저장
    printf("%s\n", string);   // 문자열의 내용을 출력

    free(string);    // 동적 메모리 해제
    return 0;
}


저작자 표시
신고


Posted by injunech
2016.11.14 16:25


Java 문자열 숫자 자료형 변환


1. 숫자를 문자열로 바꾸기

int i = 1234;

String s = String.valueOf(i);     문자열 "1234"로 변환

String s = Integer.toString(i);   문자열 "1234"로 변환

String s = ””+i;                문자열 "1234"로 변환

String s = “”+12.34;            문자열 "12.34"로 변환

String s = “”+0;                문자열 "0"로 변환


 

2. 문자열을 숫자로 바꾸기

String str = "1234";

int i = Integer.valueOf(str).intValue();

int i = Integer.parseInt(str);

long i = Long.parseLong(str)

double i = Double.valueOf(str).doubleValue();

Byte.parseByte(str)        바이트형 정수로 변환 

Short.parseShort(str)      short형 정수로 변환 

Integer.parseInteger(str)  int형 정수로 변환 

Long.parseLong(str)        long형 정수로 변환 

Float.parseFloat(str)      float형 부동 소수로 변환 

Double.parseDouble(str)    double형 부동 소수로


3. 진수 변환

문자 16진수 → 숫자 10진수

String strHexValue = "A";

System.out.println(Integer.parseInt(strHexValue, 16));

>> 10


숫자 10진수 → 문자 16진수

System.out.println(Integer.toString(intHexValue, 16));

>> a 


4. 대소문자 변환


소문자 → 대문자

String strSmallA = "a";

String strLargeA = strSmallA.toUpperCase();


대문자 → 소문자 

String strLargeA = "A";

String strSmallA = strLargeA.toLowerCase();


5. 문자 비교

"a".equals("A") → false

"a".equalsIgnoreCase("A") → ture


 


 

신고


Posted by injunech
2016.04.09 00:14


[초급] 문자열 입력받고 하나씩 자르기

입력값이 12345 와같은 값으로 들어올때 int 배열의 하나의 공간에 각 한자리 숫자 값을 입력 받는 방법이다.
#include <stdio.h>

int main() {
	char str[50];
	int val[10];

	scanf("%s", &str);
	for (int i = 0; str[i] != '\0'; i++){
		val[i] = str[i] - '0';
		printf("%d ", val[i]);
	}
	return 0;
}
input 값이 12345 인 경우 char str 배열에 들어가는 입력 값은 str[0] 부터 str[4] 까지 차례로 1,2,3,4,5 가 되며 코드 수행시 아래와 같이 출력 된다. 1 2 3 4 5 끝.


신고


Posted by injunech

티스토리 툴바