ACM经典算法之字符串处理


转自:http://blog.sina.com.cn/s/blog_93d2ceba010145c6.html

一、(字符串替换)


语法:replace(char str[],char key[],char swap[]);

参数:

str[]:

在此源字符串进行替换操作

key[]:

被替换的字符串,不能为空串

swap[]:

替换的字符串,可以为空串,为空串表示在源字符中删除key[]

返回值:

null

注意:

 

 

默认str[]长度小于1000,如否,重新设定设定tmp大小

 

需要 string.h

源程序:

 

 

void replace(char str[],char key[],char swap[])
{
    int l1,l2,l3,i,j,flag;
    char tmp[1000];
    l1=strlen(str);
    l2=strlen(key);
    l3=strlen(swap);
    for (i=0;i<=l1-l2;i++)
        {
        flag=1;
        for (j=0;j<l2;j++)
            if (str[i+j]!=key[j]) {flag=0;break;}
        if (flag)
            {
            strcpy(tmp,str);
            strcpy(&tmp[i],swap);
            strcpy(&tmp[i+l3],&str[i+l2]);
            strcpy(str,tmp);
            i+=l3-1;
            l1=strlen(str);
            }
        }
}


二、

(字符串查找)

 

语法:result=strfind(char str[],char key[]);

参数:

str[]:

在此源字符串进行查找操作

key[]:

被查找的字符串,不能为空串

返回值:

如果查找成功,返回key在str中第一次出现的位置,否则返回-1

注意:

 

 

需要 string.h

源程序:

 

 

int strfind(char str[],char key[])
{
    int l1,l2,i,j,flag;
    l1=strlen(str);
    l2=strlen(key);
    for (i=0;i<=l1-l2;i++)
        {
        flag=1;
        for (j=0;j<l2;j++)
            if (str[i+j]!=key[j]) {flag=0;break;}
        if (flag) return i;
        }
    return -1;


三、(字符串截取)

语法:mid(char str[],int start,int len,char strback[])

参数:

str[]:

操作的目标字符串

start:

从第start个字符串开始,截取长度为len的字符

len:

从第start个字符串开始,截取长度为len的字符

strback[]:

截取的到的字符

返回值:

0:超出字符串长度,截取失败;1:截取成功

注意:

 

 

需要 string.h

源程序:

 

 

int mid(char str[],int start,int len,char strback[])
{
    int l,i,k=0;
    l=strlen(str);
    if (start+len>l) return 0;
    for (i=start;i<start+len;i++)
        strback[k++]=str[i];
    strback[k]='\0';
    return 1;


<think>好的,我现在需要帮助用户在Ubuntu虚拟机上安装配置中文输入法。根据用户提供的引用资料,我需要先理清步骤,确保覆盖所有关键点。首先,用户提到了三个引用,其中引用1引用3提到了使用ibus框架安装中文输入法,而引用2则提到了安装VMTools换源的步骤。 首先,我应该检查用户是否已经安装好了中文支持环境。根据引用1的步骤一,安装中文输入环境可能涉及系统设置的调整。然后,安装输入法框架,比如ibus,这是常见的,引用13都提到了。接着是安装具体的输入法引擎,比如拼音,可能需要安装ibus-libpinyin或者ibus-pinyin。安装完成后,需要配置ibus,将其添加到启动项,并在系统设置里添加中文输入源。 另外,引用2提到了换源安装VMTools。换源可以加快软件下载速度,尤其是在国内,这可能是安装过程中的一个优化步骤。安装VMTools则有助于虚拟机与宿主机之间的更好集成,比如剪切板共享分辨率调整,这对用户输入体验可能有帮助。 引用3中的具体步骤提到了一些可能遇到的问题,比如需要重启ibus服务或者系统,这需要提醒用户注意。另外,用户可能在安装过程中遇到依赖问题,需要确保系统已更新,并且正确添加了中文语言支持。 接下来,我需要将这些步骤按顺序组织,确保用户能够逐步跟随。可能的结构是:更新系统、安装中文语言支持、换源(可选但建议)、安装输入法框架引擎、配置输入法、安装VMTools(可选但建议)、测试输入法。同时,要指出每个步骤的必要性可能出现的问题,比如重启服务或系统。 在回答中,需要遵循用户给出的格式要求:使用中文,行内数学公式用$...$,独立公式用$$...$$,不过在这个问题中可能用不到数学公式,但需要注意其他格式要求如代码块引用标识。同时,生成相关问题,比如询问如何解决安装中的依赖问题,或者如何切换输入法快捷键等。 最后,确保引用的正确添加,每个引用来源在回答中的相关位置标注,例如安装中文环境来自引用[^1],换源VMTools来自引用[^2],安装步骤参考引用[^3]。需要确认每个步骤对应的引用是否正确,避免混淆。</think>### 在Ubuntu虚拟机中安装配置中文输入法 以下是详细步骤,结合系统优化常见问题解决方案: --- #### **1. 更新系统并安装中文语言支持** - 更新软件源系统: ```bash sudo apt update && sudo apt upgrade -y ``` - 安装中文语言包: ```bash sudo apt install language-pack-zh-hans -y ``` 进入系统设置(Settings → Region & Language),添加中文(简体)语言支持[^1][^2]。 --- #### **2. 换源(可选但推荐)** 国内用户建议更换为阿里云或清华源以加速下载: - 备份原源列表: ```bash sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak ``` - 编辑源列表(以清华源为例): ```bash sudo nano /etc/apt/sources.list ``` 替换为以下内容: ``` deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse ``` 保存后更新: ```bash sudo apt update ``` --- #### **3. 安装输入法框架引擎** 推荐使用`ibus`框架搭配`ibus-libpinyin`: ```bash sudo apt install ibus ibus-libpinyin -y ``` 其他可选引擎: - `fcitx`框架:`sudo apt install fcitx fcitx-googlepinyin` - 搜狗输入法:需从官网下载`.deb`包手动安装[^3]。 --- #### **4. 配置输入法** - 重启`ibus`服务: ```bash ibus restart ``` - 进入设置: **Settings → Region & Language → Input Sources → 添加 Chinese (Intelligent Pinyin)**。 - 设置快捷键: **Settings → Devices → Keyboard → 调整切换输入法的快捷键**(默认通常为`Super+空格`)。 --- #### **5. 安装VMware Tools(增强体验)** - 在VMware菜单选择 **虚拟机 → 安装VMware Tools**。 - 挂载并解压安装包: ```bash sudo mount /dev/cdrom /mnt cd /mnt tar -xzvf VMwareTools-*.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib/ sudo ./vmware-install.pl ``` 安装后重启虚拟机以启用剪贴板共享分辨率自适应。 --- #### **6. 测试输入法** - 打开文本编辑器(如`gedit`),使用`Ctrl+空格`或设定快捷键切换到中文输入法。 - 若未生效,尝试重启系统: ```bash sudo reboot ``` --- ### 常见问题解决 - **输入法未显示**:检查`ibus-daemon`是否运行,可通过`ibus restart`重启服务。 - **依赖冲突**:使用`sudo apt --fix-broken install`修复依赖关系。 - **搜狗输入法崩溃**:安装缺失依赖`fcitx-libs-dev`或更换为`ibus`方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值