三九宝宝网宝宝教育教学论文

请教C语言字符串倒序输出

01月02日 编辑 39baobao.com

[C语言程序设计字符串连接]#include #include int main(void) { unsigned int i,j; char soustr[80],desstr[80];//定义两个字符型数组,长度都为80 gets(soustr);//读取第一行输入,即敲下回车键之前的输入...+阅读

#include #include void main() { char string1[200]; //用于存放输入的字符串 char string2[200]; //用于存放倒序后的字符串 int invertion(char *ch1, char *ch2); //声明函数 printf("Please input a sentences:\n"); gets(string1); //这里不要用scanf,因为scanf遇到空白符就会结束 printf("Your inputed sentences is:%s\n", string1); invertion(string1, string2); printf("The invertion sentences is:%s\n", string2); getchar(); } int invertion(char *ch1, char *ch2)/*char1 接收实参传过来的原字符串指针 char2 接收倒序后的新字符串返回主函数*/ { int count = 1,num=0; char *ch=ch1; for(;*ch1!='\0';ch1++)// 统计单词个数 { if(*ch1==' ') count++; //单词数等于空格数加1,前面把count初始化为1就是这个原因 if(*ch1==' '&&*(ch1+1)==' ') //防止单词之间有2个空格符而多计数了一个单词数 count--; } printf("count = %d\n", count); ch1=ch1-1;//前面的ch1经过循环之后已经指向字符串的结束标志'\0',这里减1是为了让它指向字符串的最后一个字符 while(ch1>=ch)//让ch1从指向string1的最后一个字符开始往前递减,当减到字符串的首个字符时结束 { int j=num; //保存num,后面要用到这个数 if(*ch1!=' ')//记录每个单词的长度 ,以空格符作为标志 num++; else // 知道了每个单词的长度之后,就可以用循环将字符以单词为单位写入数组string中,这样的话单词内就不会倒序了 { for(int i=1;i<=j;i++,num--) *(ch2-num)=*(ch1+i); *ch2=*ch1; } ch1--; ch2++; } for(int i=1;i<=num;i++,ch2++)//因为string1的第一个单词前没有空格符,肯定输不出来,所以单独用一个循环将其输出 *(ch2-num)=*(ch1+i); *ch2='\0'; //string2的结束标志 } 这是我做了修改之后的程序,看看符不符合要求!! 你的那个定义的变量太多,很混乱!循环语句太乱了,if判断条件与循环条件不正确 已经做了修改,看符合要求不,不行的话,再说!!! 又做了修改了,看符合要求不?? 不会吧,我调试通过还运行了!!不然怎么会发上来啊!!至于算法问题我给注释吧,你看看!!

以下为关联文档:

C语言编写字符串连接int i=0,j; char ch; char str1[100],str2[100]; printf("请输入2个字符串:\n"); scanf("%s %s",str1,str2); printf("合并前str1:%s,str2:%s\n",str1,str2); strcat(str1,str2); while...

C语言编程:字符串的连接scanf("%s %s",a[100],b[100]);改为scanf("%s %s",a,b); strcat(char a[],const char b[]);改为strcat( a, b); 完整程序: #include<stdio.h> #include<string.h> main() { char a[...

C语言连接字符串问题正确答案: #include<stdio.h> main() { int i,j,k,l; char str1[10],str2[10],str3[20]; scanf("%s",str1); scanf("%s",str2); i=sizeof(str1); j=sizeof(str2); for(k=0;k<i;k+...

C语言字符串连接问题Please input str1:123 Please input str2:456 123456 Press any key to continue #include <stdio.h> char*mystrcat(char*str1,char*str2); void main() { char str1[50];...

C语言函数字符串截取分割C标准库中提供了一个字符串分割函数strtok(); 实现代码如下: #include <stdio.h> #include <string.h> #define MAXSIZE 1024 int main(int argc, char * argv[]) { char dat...

C语言字符串使用strtok函数分割之后字符串在内存中位置是否有改变char buf[20] = "abc def mmmm"; char *p = strtok(buf," "); printf("buf=%s\n",buf); printf("p_addr=%p\n",p); printf("buf_addr=%p\n",buf); 输出:buf=abc,说明切割后buf中的第一个...

c语言倒序输出字符串1 2 3 4 5 6 7 8 9 10 11 12 #include<stdio.h> #include<string.h> intmain () { charstring[100]; inti; charc; gets(string); for(i=strlen(string);i--;)//<----------...

C语言中的倒序输出#include<stdio.h> #include<string.h> #include<conio.h> void main() { int i; char *ch; ch=NULL; clrscr(); scanf("%s",ch); for(i=strlen(ch)-1;i>=0;i--) printf("%c",ch...

C语言字符串反转逆序输出已改,看注释 #include #include int main() { char a[31][31],*start,*end; int i=0,t,len,k=0; while(gets(a[i])!=NULL) { len=strlen(a[i]); start=a[i];end=&a[i][len-1]...

推荐阅读
图文推荐