C++빈 칸 을 포함 하 는 문자열 을 입력 합 니 다.

1.scanf 함수(헤더 파일 포함\#include)
scanf 함 수 는 일반적으로 scanf("%s",st)형식 이지 만,scanf 기본 리 턴 과 빈 칸 은 서로 다른 그룹 간 의 간격 과 끝 기 호 를 입력 하기 때문에 빈 칸,tab 또는 리 턴 문자열 을 입력 하면 안 됩 니 다.
해결 방법 은 다음 과 같다.
1.형식 문자'%[]'를 사용 하여 문자 집합 을 스 캔 합 니 다.
Scanf(“%[^c]”,str); 그 중에서'c'는 구체 적 인 문자 상수(제어 문자 포함)입 니 다.
문자열 을 입력 할 때 문자'c'는 현재 입력 의 끝 문자 로 사 용 됩 니 다.
이 형식 부 호 를 이용 하면 프로그래머 가 스스로 입력 끝 부 호 를 지정 할 수 있 습 니 다.
예 를 들 면:
scanf("%[a-z A-Z0-9]",str)는 입력 과 일치 하 는 것 이 대소 문자 와 숫자 이 며,비 숫자 와 자 모 를 만 났 을 때 입력 이 끝 났 음 을 나타 낸다.
예 를 들 면:

int main() 
{
 char st[50];
 scanf("%[^
]",st);//
printf("%s",st); return 0; }
2.cin(헤더 파일 포함\#include)
cin 은 C++에서 가장 자주 사용 하 는 입력 문 으로 빈 칸 이나 리 턴 키 를 만나면 멈 춥 니 다.해결 할 방법 이 없다.
3. gets()
리 턴 으로 읽 기 를 끝 낼 수 있 습 니 다.C 언어의 함 수 는 C++에서 실행 하면 bug 가 발생 합 니 다.C11 표준 에서 이미 정식으로 삭제 되 었 습 니 다.사용 하지 말 것 을 권장 합 니 다!!!
4.getline()(헤더 파일 포함\#include)
변 수 를 string 형식 으로 정의 하면 문자 배열 이 아 닙 니 다.getline()함 수 를 고려 해 야 합 니 다.
용법 은 다음 과 같다.

int main() 
{ 
 string st; 
 getline(cin,st); 
 cout<<st<<endl;
 return0; 
}
5.cin.get (char *str, int maxnum)
cin.get()함 수 는 빈 칸 을 받 을 수 있 습 니 다.차 가 돌아 오 면 입력 을 끝 냅 니 다.

int main() 
{ 
 char st[50]; 
 cin.get(st,50); 
 cout<<a<<endl;//       printf("%s",st); 
 return0; 
}
6.cin.getline(char*str,int maxnum)(헤더 파일 포함\#include)
cin.getline()함 수 는 cin.get()함수 와 유사 할 수도 있 고 빈 칸 을 받 을 수도 있 으 며,차 가 돌아 오 면 입력 을 끝 낼 수도 있 습 니 다.

int main() 
{ 
 char st[50]; 
 cin.getline(a,50); 
 cout<<a<<endl; //       printf("%s",st); 
 return0; 
}
7.문자열 형식 을 문자 배열 로 변환

(a)c_str() 
 char p[50]; 
 string str="I Love Ningbo!"; 
 strcpy(p,str.c_str()); 
 printf("%s",p);
 
(b)data()
 char p[50]; 
 string str="I Love Ningbo!"; 
 strcpy(p,str.data()); 
 printf("%s",p);
c++cin 스페이스 바 입력
코드 를 직접 추가 합 니 다:
cin >> noskipws;
noskipws
실례:

#include<iostream>
using namespace std;
int main()
{
 cin >> noskipws;//  cin     ;
 char c;
 size_t acount =0, ecount =0, icount =0, ocount =0, ucount = 0,scount = 0;
 while (cin >> c)
 {
 if (c == 'a')++acount;
 if (c == 'e')++ecount;
 if (c == 'i')++icount;
 if (c == 'o')++ocount;
 if (c == 'u')++ucount;
 if (c == ' ')++scount;
 }
 cout << "a: " << acount << endl;
 cout << "e: " << ecount << endl;
 cout << "i: " << icount << endl;
 cout << "o: " << ocount << endl;
 cout << "u: " << ucount << endl;
 cout << "space: " << scount << endl;
 return 0;
}
***실행 결과:***

이 C++는 빈 칸 을 포함 하 는 문자열 을 입력 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기