블루 브리지컵 제5회 성 경기 빈칸 채우기 문제[문자열 문제]

7709 단어
블루 브리지 컵 빈 문제를 프로그램에 복사할 때 fgets () 대신 cin>>buf를 사용했는데, 결과는 아무리 해도 맞지 않았다.cin으로 바꿔야지.getline(buf,1000);두 번째 매개 변수는 문자열의 길이 귀납입니다: 1,cin 2,cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()
부록:cin.ignore();cin.get ()//원하지 않는 리턴, 스페이스 바 등 문자를 건너뛰기
1、cin>>
사용법 1: 가장 기본적이고 가장 일반적인 사용법으로 숫자를 입력합니다.
#include  
using namespace std; 
main () 
{ 
int a,b; 
cin>>a>>b; 
cout<

입력: 2[캐리지 리턴] 3[캐리지 리턴] 출력: 5
주의: >>는 보이지 않는 문자 (예를 들어 스페이스 바 리턴, TAB 등) 를 필터합니다.cin>noskipws>>input[j];//공백 문자를 생략하고 싶지 않으면noskipws 흐름 제어를 사용하십시오
사용법 2: 공백, TAB, 캐리지 리턴으로 끝나는 문자열을 적용합니다.
#include  
using namespace std; 
main () 
{ 
char a[20]; 
cin>>a; 
cout<

입력:jkljkljkl 출력:jkljkl
입력: jkljkl jkljkl//공백을 만나 출력 종료: jkljkl
2、cin.get()
용법1:cin.get (문자 변수 이름) 은 문자를 수신할 수 있습니다
#include  
using namespace std; 
main () 
{ 
char ch; 
ch=cin.get();               //  cin.get(ch); 
cout<

입력:jljkljkl 출력:j
용법2:cin.get (문자 그룹 이름, 수신 문자 수) 은 문자열을 수신하는 데 사용되며, 빈칸을 수신할 수 있습니다
#include  
using namespace std; 
main () 
{ 
char a[20]; 
cin.get(a,20); 
cout<

입력: jkl jkl 출력: jkl jkl
입력: abcdeabcdeabcdeabcdeabcdea(25자 입력) 출력: abcdeabcdeabcdeabcd (19자 수신 + 1'\0')
용법3:cin.get(파라미터 없음) 파라미터가 없는 것은 입력 흐름에 필요하지 않은 문자를 버리거나 리턴을 버려서cin을 보완하는 데 사용됩니다.get (문자 그룹 이름, 수신 문자 수) 의 부족입니다.
이것은 아직 어떻게 쓰는지 모르겠습니다. 아시는 선배님께서 가르쳐 주십시오.
3、cin.getline ()//문자열을 받아들여 빈칸을 받고 출력할 수 있습니다
#include  
using namespace std; 
main () 
{ 
char m[20]; 
cin.getline(m,5); 
cout<

입력:jkljkljkl 출력:jklj
m에 다섯 글자를 받아들이고 그 중 마지막은'\0'이기 때문에 네 글자만 출력됩니다.
만약 5를 20:입력:jkljkljkl 출력:jkljkljkl로 바꾸면
입력: jklf fjlsjf fjsdklf 출력: jklf fjlsjf fjsdklf
//확장://cin.getline () 는 실제로 세 개의 매개 변수가 있습니다,cin.getline (문자열을 받아들일 때 m, 5를 받아들일 때, 끝 문자를 받아들일 때)//세 번째 인자가 생략될 때 시스템은 기본적으로 '\0' 입니다./예를 들어cin을 사용합니다.getline () 을cin으로 변경합니다.getline(m,5,’a’);jlkjkljkl을 입력할 때 jklj를 출력하고 jkaljkljkl을 입력할 때 jk를 출력합니다
다차원 그룹에 사용할 때cin도 사용할 수 있다.getline(m[i], 20) 등의 용도:

#include 
#include 
using namespace std;

main () 
{ 
char m[3][20]; 
for(int i=0;i<3;i++) 
{ 
cout<<"
"
<1<<" :"<cin.getline(m[i],20); } cout<for(int j=0;j<3;j++) cout<<" m["<"] :"<

첫 번째 문자열을 입력하십시오: kskr1
두 번째 문자열을 입력하십시오: kskr2
세 번째 문자열을 입력하십시오: kskr3
출력 m[0]의 값: kskr1 출력 m[1]의 값: kskr2 출력 m[2]의 값: kskr3
4.getline()//공백을 받고 출력할 수 있는 문자열을 받아들입니다. "#include"를 포함해야 합니다.
#include 
#include 
using namespace std; 
main () 
{ 
string str; 
getline(cin,str); 
cout<

입력:jkljkljkl 출력:jkljkl
입력: jkl jfksldfj jklsjfl 출력: jkl jfksldfj jklsjfl
화cin.getline ()는 유사하지만cin.getline ()는istream 흐름에 속하고 getline ()는string 흐름에 속하며 다른 두 함수입니다
블루 브리지 컵 성 경기의 빈 칸을 채우는 문제
#include
using namespace std;

#include 
int get_word_num(char* buf)
{
    int n = 0;
    int tag = 1;
    char * p = buf;
    for(;*p!=0 && *p!=13 && *p!=10;p++)
    {
        if(*p==' '&&tag==0)
            tag=1;
        if(*p!=' '&&tag==1)//  
        {
            n++;
            tag=0;
        }
    }
    return n;
}

int main()
{
    char buf[1000];
   // fgets(buf,1000,stdin);
        cin.getline(buf,1000);//             cin>>buf  
    printf("%d
"
, get_word_num(buf)); return 0; }

좋은 웹페이지 즐겨찾기