【问题标题】:Assign value to pointer in C为C中的指针赋值
【发布时间】:2013-06-24 14:39:57
【问题描述】:

我需要在每个小写字母上加上 *,但我的程序总是阻塞。尽管这似乎是一个简单的问题,但我找不到简单的解决方案。请帮忙。

#include <stdio.h> 

void f(char *p)
{
    int i = 0;
    char c = '*';
    while(p[i] != '\0')
    {
        if(p[i]> 96 && p[i] < 122 )
        {
            p[i] = c; # here program block
        }
        i++;
    }
    printf("%c",p);
}

int main(void)
{
    f("tesT");
    return 1;
}

我在互联网上发现了一些类似的问题,但没有成功。 :(

【问题讨论】:

标签: c arrays pointers ascii


【解决方案1】:

您不能修改字符串文字。

试试:

int main(void)
{
   char buf[] = "tesT";

   f(buf);

   return 1;
}

另外,永远不要硬编码 ASCII 值,使用来自 &lt;ctype.h&gt;islower()

【讨论】:

    猜你喜欢
    • 2010-09-11
    • 2019-07-10
    • 2011-10-27
    • 2011-01-20
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多