c程序输出字符串显示 f\366\277\357\376 ,这是什么原因?

字符串声明:

 char name[1];

字符串赋值:

srand((unsigned)time(NULL)); 
k[0].name[0] = rand()%26+97;
    for(i = 1 ;i < 5;i++)
    {
        k[i].name[0] = rand()%26+97;
        for(j = 0;j < i;j++)
        {
            if(k[i].name[0] == k[j].name[0])
            {
                i--;
            }
        }
    }

字符串输出:

for (i = 0; i < 5; i++) {
        printf("%s\n",k[i].name);

结果:

 x
 f\366\277\357\376
 l\366\277\357\376
 a\366\277\357\376
 d

1个回答

 完整的程序是什么,k在哪里定义的,是否越界
printf("%s\n",k[i].name);
这个要求字符串有结束符号,你可以用 %c输出单个字符,因为name只有一个字符长度,结尾没有\\0
qq_41303852
s1mple_1 k是一个数据结构类型的数组
一年多之前 回复
qq_41303852
s1mple_1 数据结构:
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言怎样输出字符串?

请问这个程序为什么没法输出? ``` #include<stdio.h> void squeeze(char s1[],char s2[]) { int i, j, k = 0;; int DO =0; for (i = 0; s1[i] != '\0'; i++) { for(j = 0; s2[j] != '\0'; j++) { if (s1[i] == s2[j]) { DO = 1; } if(!DO) { s1[k++] = s1[i]; } } } s1[j] = '\0'; } int main() { char s1[] = "4567yuljf"; char c1[] = "ljf"; squeeze(s1,c1); printf("%s",s1[1]); } ```

这是一个关于C语言输出字符串长度的问题

``` #include<stdio.h> #include<stdlib.h> int main() {int id=0; char a[20]={'a','b,','c'}; for(int num;num<20;num++) { if(a[num='\0']) break; id++;} printf("%d",id); system("pause"); return 0;} ``` 我想做一个小程序。判断出一个字符数组有意义字符的长度。上面是我写的。 我想通过这样一个原理去做。有意义的字符集后面有个'\0',通过它判断id加的结束,并且进行id的输出。但是呢,调试时候a[num]内容为a,也进行了break操作,然后程序就没有得到应该的结果,好奇怪

C语言的putchar为什么会倒序输出字符串

![图片说明](https://img-ask.csdn.net/upload/201802/24/1519455543_466054.jpg) 这个程序,当我输入123456回车之后,为什么会倒序输出654321 进入try,输入一个字符串123456,然后getchar取1赋值给c,再次执行try,取2赋值给c,依次向下,当取到回车的时候if不成立,执行putchar,这个时候c应该是等于6的才对呀,为什么c会变成654321

C语言程序在字符串中查找某字符

#include <stdio.h> int main(void) { int i, j; char ab[80]; char x; printf("Input a character: "); scanf("%c",&x); printf("Input a string: "); gets(ab); for(i=0;i<16;i++) if (ab[i]==x) j=i; printf("index=%d",j);} 输入一个字符,再输入一个以回车结束的字符串(少于80 个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始); 错哪里了呢

C语言,字符串 逆序输出问题

自己写了一段逆序输出的代码,但是运行没有结果 ``` #include <stdio.h> #include <stdlib.h> int main() { char a[100]; int i; i = 0; while ((a[i]=getchar())!='\r') /*将输入的字符依次保存在a数组中,并递增i,记录字符串长度*/ { i++; } for (; i >= 0; i--) { printf("%c", a[i]); /*倒序依次输出字符*/ } system("pause"); return 0; } ``` 规定的是遇到\r(回车)就中止循环,但是实际运行时输入回车后就直接换行了,并没有中止循环,请问是哪里出问题了,另,我的思路有问题吗

用c语言怎么写字符串的反转?

![图片说明](https://img-ask.csdn.net/upload/201912/01/1575171492_949668.png) ``` #include<stdio.h> #include<string.h> int main() { int i, n; char st1[40]; char st2[40]; scanf("%s", st1); i = strlen(st1); /*计算输入的st1数组的长度*/ for (n = 0; i == 0; n++) /*整个for语句是为了表达字符一一对应的反转*/ { st2[n] = st1[i]; i--; } puts(st2); return 0; } ``` 本人是初学者,只是不太明白为什么我这样写是错误的,请求各位zhi'dao

C语言字符串单词逆序输出

想要实现字符串里的单词逆序输出,如 给定“how are you”,应输出“you are how” 下面的代码想要利用递归算法实现,但发现运行之后没实现,求解!万分感谢! ``` #include<stdio.h> #include<string.h> void fun(char *p,int i,int len); int main() { char a[50]="how are you"; int lenth=strlen(a); printf("len=%d\n",lenth); puts(a); fun(a,0,lenth); printf("\n"); } void fun(char *p,int i,int len) { for(;i<len;i++) if(p[i]==' ') fun(p,i+1,len); while(p[i-1]!=' ') i--; while(p[i]!=' ' && p[i]!='\0') { printf("%c",p[i]); i++; } printf(" "); } ```

C语言,字符串输出问题

题目是输入一个字符串,以单词为单位,以空格、逗号或句号为间隔,将字符串倒序输出(不包含标点符号)。 例如: 输入:hello world 输出:world hello 输入:hello,I am Tom. 输出:Tom am I hello 我的思路是输入一个字符串,再创建一个二维数组,将单词依次存储在二维数组的每个元素中,再逆序输出,中间间隔一个空格,但是编译通过后,输出有问题,请大家看看哪里错了,谢谢 ``` #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[101], s[20][20]; //str用于输入字符串,s用来存储字符串 int n, i, j, count; scanf_s("%s", &str); i = j = 0; for (n = 0; n < strlen(str); n++) { if (str[n] == '\0') { break; } else if (str[n] != ' '&&str[n] != ','&&str[n] != '.') { s[i][j] = str[n]; j++; //将单词每个字母依次存入列中 } else { i++; //记录单词个数 j = 0; //初始化列序数 } } count = i; //单词个数 for (i = count; i >= 0; i--) { for (j = 0; j < 20; j++) { printf("%c", s[i][j]); //倒序依次输出每个单词 } printf(" "); } system("pause"); return 0; } ```

关于C语言中的字符串输入输出

出于好奇测试了一下,声明的时候: char ch[5]; scanf("%s",ch); printf("%s,%d",ch,sizeof ch); 如果输入超过5个字母,字母都还是会全部显示出来的,而ch的大小还是5BYTE。这printf到底是什么黑科技?顺便问一下%s是怎么支持Unicode的?好像汉字啦,Ctrl+字符这一类奇奇怪怪的好像也都可以输出诶,怎么做到的? 好像getchar()也能正常识别汉字并储存的样子……

c语言中,为什么puts函数输出的字符串后有乱码?

输入一个4位的数字(1,2,3,4),存在字符串s1[4]中。 输入一个要插入的字符(W),存在字符c中。 s2[7]用来存储c插入s1后的结果,结果应该为“1W2W3W4”。 为什么puts(s2)输入的有乱码,我用的是win7+C-Free4.0。 代码如下: #include<stdio.h> int main() { char s1[4],s2[7],c; int i,j; printf("请输入s1:"); gets(s1); printf("*****s1输入成功*****\n"); puts(s1); printf("\n"); printf("请输入要插入的字符:"); scanf("%c",&c); fflush(stdin); printf("*****要插入的字符c输入成功*****\n"); printf("%c\n",c); printf("\n"); for(i=0,j=0;j<=6;i++,j++) { s2[j]=s1[i]; s2[j+1]=c; j++; } printf("*****c字符插入s2字符串成功*****\n"); for(i=0;i<7;i++) { printf("%c",s2[i]); } printf("\n"); for(i=0;i<7;i++) { printf("s2[%d]=%c ",i,s2[i]); } printf("\nputs()输出:"); puts(s2); return 0; } 结果如下: ![图片说明](https://img-ask.csdn.net/upload/201608/10/1470838745_112070.png)

用c语言判断输入字符串是不是回文字符串

输入的字符串可能有空格,要求输入 一个数,表示要输入几组数据,然后输入字符串; 若是回文字符串,则输出yes,否则输出no; 例如 3 qwe abba ds ds no yes no 求代码。。 初学C这问题想了很久,求帮忙。。

指定位置输出字符串:输入一个字符串后再输入两个字符,输出此字符串中从与第一个字

指定位置输出字符串:输入一个字符串后再输入两个字符,输出此字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置结束的所有字符。要求定义函数char* match(char* s, char ch1, char ch2)返回结果字符串的首地址。 若没有,返回NULL。 示例 输入:program r g 输出:rog

数据结构C语言字符串的输出时总是少输出最后一个字符,这是怎么回事啊?

代码如下: #include <stdio.h> #include <stdlib.h> struct SeqString { int MAXNUM;//字符串的最大个数 int n;//字符串的长度 char *c;//存储基地址 }; typedef struct SeqString *PSeqString; PSeqString CreatNullStr(int m); void InitStr(PSeqString pstr); /****主函数****/ int main() { int m; PSeqString pstr; printf("设置字符串最大个数MAXNUM:"); scanf("%d",&m); pstr=CreatNullStr(m); InitStr(pstr); return 0; } PSeqString CreatNullStr(int m) { PSeqString pstr=(PSeqString)malloc(sizeof(struct SeqString)); if(pstr!=NULL) { pstr->c=(char *)malloc(sizeof(char)*m); if(pstr->c) { pstr->n=0; pstr->MAXNUM=m; return pstr; } else free(pstr); } printf("!!!"); return NULL; } void InitStr(PSeqString pstr) { int i,n; char ch; PSeqString p=pstr; printf("字符串初始长度n,(注意:初始字符串长度不大于MAXNUM):\n请输入:"); scanf("%d",&n);//n表示长度 printf("字符串输入:"); for(i=0;i<n;i++) { ch=getchar(); p->c[i]=ch; p->n=p->n+1; } printf("初始后的元素输出:"); for(i=0;i<p->n;i++) printf("%c",p->c[i]); } 运行结果,最后一个字符总是输不出来,救救小白!!! ![图片说明](https://img-ask.csdn.net/upload/201604/15/1460684317_553483.png)

C语言字符串的定义问题

问题描述:   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。 **这是我遇到的问题,我的想法是: 做一个像数组一样的字符串,这样的话,像对数组处理的方式一样,利用遍历的方法,就可以直接对整个字符串进行处理了。可是如何定义呢? int n; scanf("%d",&n); string str[n]; //这样做,不对呀**

C语言在函数中输出字符串的问题

题目上要求通过函数来输出字符串,但运行过程中每次在输入后就会提示程序停止运行,是哪写的有错么? 谢谢 #include<stdio.h> void chline(char ch, int i,int n); int main() { int b, c; char word[40]; printf("Please input the lines:\n"); scanf("%d,%d", &b, &c); printf("please input the words you want to show:\n"); scanf("%s",word); chline(word, b, c); return 0; } void chline(char ch, int i,int n) { int a; for (a = 1; a <= i; a++) printf(" "); printf("%s", ch); }

c语言关于printf输出字符串以及scanf的一些问题

代码一 ``` #include <stdio.h> char ch1[] = {'a', 'b', 'c'}; char ch2[] = "abc"; int main(void) { printf("String ch1 is: %s\n", ch1); printf("String ch2 is: %s\n", ch2); return 0; } ``` 代码二 ``` #include <stdio.h> int main(void) char ch1[] = {'a', 'b', 'c'}; char ch2[] = "abc"; { printf("String ch1 is: %s\n", ch1); printf("String ch2 is: %s\n", ch2); return 0; } ``` **代码一输出的第一行和第二行都是abc,代码二第一行是abc和乱码第二行是abc 请问这是为什么按说ch1没有结束符呀** 代码三 ``` scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/ /*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/ scanf("%c",&a); ``` 请问代码3中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户 代码四 ``` #include <stdio.h> int main() {int x,y; scanf("%d",&x); scanf("%d",&y); printf("%d%d",x,y); return 0; } ``` 代码四中 如果输入:s 1 为什么两个出来都是乱码?1难道没有被x接受吗?

c语言 输入一个字符串 输出该字符串中每个字母的下一个字母

例如输入abcd输出bcde

采用C语言进行字符串压缩

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz" 示例 输入:“cccddecc” 输出:“3c2de2c” 输入:“adef” 输出:“adef” 输入:“pppppppp” 输出:“8p”

PTA C语言 找最小的字符串 段错误

在PTA上遇到了找最小字符串的问题 > 7-47 找最小的字符串 (15 分) 本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。 > 输入格式: 输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。 > 输出格式: 在一行中用以下格式输出最小的字符串: > Min is: 最小字符串 输入样例: 5 Li Wang Zha Jin Xian 输出样例: Min is: Jin 然后自己写了一段代码 ``` #include<stdio.h> #include<string.h> int main() { int i,n; scanf("%d",&n); char a[n-1][80]; getchar(); int k; for (i=0;i<n;i++){ k=0; while ((a[i][k]=getchar())!='\n'){ k++; } a[i][k]='\0'; } int min; char c[80]; for (i=0;i<n-1;i++){ for (k=0;k<(n-1)-i;k++){ if (strcmp(a[k],a[k+1])>0){ strcpy(c,a[k]); strcpy(a[k],a[k+1]); strcpy(a[k+1],c); } } } printf("Min is: %s",a[0]); } ``` 但是提交时显示有一个段错误,请求各位大佬们指正

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

立方体线框模型透视投影 (计算机图形学实验)

计算机图形学实验 立方体线框模型透视投影 的可执行文件,亲测可运行,若需报告可以联系我,期待和各位交流

2019 AI开发者大会

2019 AI开发者大会

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

软件测试2小时入门

软件测试2小时入门

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

计算机图形学-球的光照模型课程设计

计算机图形学-球的光照模型,有代码完美运行,有课程设计书

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

fakeLocation13.5.1.zip

fakeLocation13.5.1 虚拟定位 ios13.5.1的最新驱动下载,iPhone/iPad免越狱虚拟定位工具Location-cleaned驱动已更新

UnityLicence

UnityLicence

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

php+mysql学生成绩管理系统

学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

推荐24个国外黄色网站欣赏

在中国清朝,明黄色的衣服只有皇子才有资格穿,慢慢的黄色在中国就成了高贵的颜色。在人们的色彩印象中,黄色也表现为暂停。所以当你的网页设计采用黄色的时候,会让人们在你的网页前停留。 黄色,就像橙色和红色,黄色也是一个暖色。它有大自然、阳光、春天的涵义,而且通常被认为是一个快乐和有希望的色彩。黄色是所有色相中最能发光的颜色,给人轻快,透明,辉煌,充满希望的色彩印象。 黄色是一个高可见的色...

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

C++语言基础视频教程

C++语言基础视频教程

玩转Python-Python3基础入门

玩转Python-Python3基础入门

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问