注册 登录
编程论坛 C++教室

请帮忙,,我是一个初学者

linkui0801 发布于 2013-01-06 23:44, 425 次点击
  
 时间限制:1秒    内存限制:32兆 题目描述
小明在阅读一篇英语作业时,发现其中有很多“全大写”的单词,并且由于拼写错误,这些“全大写”的单词总是多写了一个字母。要求帮助小明改正这些单词的拼写问题(即删除多余的那一个字母),并且将其改写为“全小写”的单词。

输入格式
第一行为一个整数m,表示“全大写”单词个数,
接下来有m行,每一行包含一个正整数n和一个“全大写”单词,用空格分开,其中整数n表示该单词中多余字母的位置。n要小于等于单词的长度,单词长度小于20.

输出格式
输出改正后的单词,每个单词占一行。

样例输入
 将样例输入复制到剪贴板
2
4 MISASPELL
1 PPROGRAMMING

样例输出
misspell
programming

提示
单个字符大写转小写用tolower函数。

Problem Source: 期末考试题
3 回复
#2
w5277050902013-01-07 19:17
这。。。求作业。。。
#3
peach54602013-01-09 19:24
又是作业...
#4
bccn2945932013-01-10 19:49
程序代码:
#include <iostream>
#include<string.h>
#include<stdlib.h>
#define LEN 20
using namespace std;

int main(int argc, char *argv[]) {
    char words[LEN];
    int num,i=0;
    cout<<"输入数字:";
    cin>>num;
    cout<<"输入单词:";
    cin>>words;
    if( num<0 || num>LEN || strlen(words)<0 || strlen(words)>LEN )
    {
        cout<<"输入有误!";
        return 0;
    }
    while(num<strlen(words))
    {
        words[num-1]=words[num++];
    }
    while(words[i]!='\0')
    {
        words[i]=tolower(words[i]);
        i++;
    }
    words[num-1]=' ';
    cout<<"修改后的单词为:"<<words<<endl;
    return 0;
}

1