leetcode:문자열 작업

2069 단어 면접 프로그램
문서 목록
  • 문자열 반전
  • 문제풀이 사고방식
  • 코드 구현
  • 문자열의 단어 수
  • 문제풀이 사고방식
  • 문제풀이 코드
  • string이char[]
  • 로 전환
  • strcpy의 실현
  • 코드 구현
  • strncpy의 실현
  • 문자열 반전
    문제풀이의 방향
    문자열을 수조로 바꾸고 두 바늘로 각각 머리와 꼬리에서 반복해서 교환합니다.
    코드 구현
    테스트 주소
    class Solution {
    public:
        void reverseString(vector& s) {
            if( s.size() > 0 )
            {
                vector::iterator p = s.begin();
                vector::iterator q = s.end() -1;
                char tmp = ' ';
                while(p

    문자열의 단어 수
    문제풀이의 방향
    처음부터 string을 반복합니다. 빈칸이 아니면 플래그를 표시해서 플래그=true가 있고 빈칸이 있을 때 단어를 표시합니다.마지막으로 flage가true인지 아닌지를 판단해 보세요. 만약true라면count++입니다. 마지막 공백이 없기 때문입니다.
    문제풀이 코드
    테스트 주소
    class Solution {
    public:
        int countSegments(string s) {
            bool flage = false;
            int count = 0;
            int i = 0;
            while (s[i] != '\0')
            {
                if(s[i] != ' ') flage = true;
                if(flage && s[i] == ' ')
                {
                    count++;
                    flage = false;
                }
                i++;
            }
            if(flage) count++;
            return count;
        }
    };
    

    string이char[]로 전환
    strcpy의 실현
    코드 구현
    char * strcpy( char *strDest, const char *strSrc ) 
    {
     assert( (strDest != NULL) && (strSrc != NULL) );  //         
     char *address = strDest;   //       char*,  char*       
     while( (*strDest++ = * strSrc++) != ‘\0’ );   // strsrc       strDest  '\0'
     return address;
    }
    

    strncpy의 실현
    char * strcpy( char *strDest, const char *strSrc, int n ) 
    {
     assert( (strDest != NULL) && (strSrc != NULL) );  //         
     char *address = strDest;   //       char*,  char*       
     int i = 0;
     while( i++ < n && (*strDest++ = * strSrc++) != ‘\0’ );   // strsrc       strDest  '\0'
     if(strDest!='\0') strDest = '\0'; 
     return address;
    }
    

    좋은 웹페이지 즐겨찾기