doq70020 2019-04-13 20:04
浏览 37
已采纳

去替换字符串中的char文字

In golang, what's the easiest way to replace a char literal in a string?

Here's the C code, where we replace the whitespace with '3':

#include <stdio.h>
#include <string.h>

int main(){

    char input[] = "Look ma no hands";
    printf("Input \"%s\" ", input);
    for (int i = 0; i < strlen(input); i++){
        //printf("input[%d] is %c
", i, input[i]);
        if ( input[i] == ' ' ){
            input[i] = 3;
        }
    }

    printf(",converted to :%s
", input);
    return 0;
}

The output:

$ ./a.out 
Input "Look ma no hands" ,converted to :Lookmanohands

How can we do this in golang?

  • 写回答

1条回答 默认 最新

  • dongmangsha7354 2019-04-13 20:11
    关注

    This is the the nearest of the c example I could make:

    func main() {
        input := "Look ma no hands"
    
        var b strings.Builder
        b.Grow(len(input))
        for _, p := range input[:] {
            if p == ' '{
                fmt.Fprintf(&b, "%c", '3')
            }else{
                fmt.Fprintf(&b, "%c", p)
            }
        }
        s := b.String()
        fmt.Println(s)
    }
    

    But as you can see, we can't modify the original string so we are not "replacing" in original string but creating a new string.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配