鱼C论坛

 找回密码
 立即注册
查看: 1603|回复: 5

[已解决]字符串问题

[复制链接]
发表于 2021-5-28 20:51:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <string.h>
int main()
{
    //printf("请输入一个字符串:");
    char str[20];

    //fgets(str,1024,stdin);
    str[20]="abcczxbvc";
    //scanf("%s",str);
    printf("%c",2[str]);
    return 0;

}
有警告,并且打印的不对。
字符串只能定义的同时进行初始化吗
最佳答案
2021-5-28 20:56:00
#include <stdio.h>
#include <string.h>

int main()
{
    //printf("请输入一个字符串:");
    char str[20];

    //fgets(str,1024,stdin);
    //str[20]="abcczxbvc";
    strcpy(str, "abcd1234");
    //scanf("%s",str);
    printf("%c",2[str]);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-28 20:56:00 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
#include <string.h>

int main()
{
    //printf("请输入一个字符串:");
    char str[20];

    //fgets(str,1024,stdin);
    //str[20]="abcczxbvc";
    strcpy(str, "abcd1234");
    //scanf("%s",str);
    printf("%c",2[str]);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 21:01:32 From FishC Mobile | 显示全部楼层
人造人 发表于 2021-5-28 20:56

printf("%c",2[str]);
这里的2[str]  是神马鬼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 21:05:41 | 显示全部楼层
wp231957 发表于 2021-5-28 21:01
printf("%c",2[str]);
这里的2[str]  是神马鬼

str[2] 就是 *(str + 2)
*(str + 2) 和 *(2 + str) 是一样的,加法交换律,a+b 等于 b+a
*(2 + str) 就是 2[str]
就是编译器允许这么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 21:11:13 | 显示全部楼层
哈哈哈  2【str】  不过确实一样的== str【2】  不过最好不要这么写   
另外
你这str【20】是个字符诶  右值是字符串,值是个地址。。
而:
str= “字符串”
也不行  str是个常量指针不能左值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 21:12:42 | 显示全部楼层
哦 对了 你str【20】 也越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表