Tin học Chuẩn hóa xâu

Junery N

Cựu Hỗ trợ viên
HV CLB Địa lí
Thành viên
23 Tháng mười một 2019
4,605
12,668
1,021
Nam Định
In the sky
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Input: Chuẩn hóa xâu Xóa tất cả các dấu cách ở 2 đầu của xâu Giữa các chữ được phân cách với nhau bởi một dấu cách duy nhất. Chữ cái sau dấu ‘.’ phải viết hoa Một chữ phải bắt đầu bằng chữ thuộc bảng chữ cái hoặc chữ số, không được bắt đầu bằng các ký tự đặc biệt. Nếu không đúng trả về “ERROR” và dừng chương trình Input: Một mảng các ký tự có chiều dài <= 10000
Output: Chuỗi sau khi được chuẩn hóa theo các đk đề bài
Ví dụ:
Input: “ A B. c” Output: “A B. C” Input: “A.B .C”
Output: ERROR (không in dấu ngoặc kép)
Thanks
 

dangtiendung1201

Cựu Mod Toán
Thành viên
24 Tháng mười hai 2018
1,272
1,359
191
20
Thái Bình
THCS Lương Thế VInh-Thành phố Thái Bình
Input: Chuẩn hóa xâu Xóa tất cả các dấu cách ở 2 đầu của xâu Giữa các chữ được phân cách với nhau bởi một dấu cách duy nhất. Chữ cái sau dấu ‘.’ phải viết hoa Một chữ phải bắt đầu bằng chữ thuộc bảng chữ cái hoặc chữ số, không được bắt đầu bằng các ký tự đặc biệt. Nếu không đúng trả về “ERROR” và dừng chương trình Input: Một mảng các ký tự có chiều dài <= 10000
Output: Chuỗi sau khi được chuẩn hóa theo các đk đề bài
Ví dụ:
Input: “ A B. c” Output: “A B. C” Input: “A.B .C”
Output: ERROR (không in dấu ngoặc kép)
Thanks
Bài này trên Codefun phải ko bạn?
Code mình chưa AC nhưng gửi để bạn tham khảo
Mã:
#include <iostream>
#include <string.h>
using namespace std;
long long i;
string s;
int main()
{
    getline(cin,s);
    for( i = 0; i < s.size() - 1; i++)
        if (s[i] == ' '&&s[i + 1] != ' ')
            if (s[i + 1] < '0' || s[i + 1] >'9' && s[i + 1] < 'A' || s[i + 1] > 'Z' && s[i + 1] < 'a' || s[i + 1] > 'z')  {
                cout << "ERROR";
                return 0;
    }
    while (s[0]==' ')
    {
        s.erase(0,1);
    }
    while (s[s.size()-1]==' ')
    {
        s.erase(s.size()-1,1);
    }
    i=0;
    while(i<s.size()-1)
        {
        if (s[i]==' ' && s[i+1]==' ')
            s.erase(i,1);
        else
            i++;
        }
    for (i=0;i<=s.size()-1;i++)
    {
        if (s[i]=='.'&&(int)s[i+1]>96&&(int)s[i+1]<123)
        {
            s[i+1] -= 32;
        }
        if (s[i]=='.'&&s[i+1]==' '&&(int)s[i+2]>96&&(int)s[i+2]<123)
        {
            s[i+2] -= 32;
        }
    }
    cout << s;
    return 0;
}
 
  • Like
Reactions: Junery N
Top Bottom