字符串-这一小段c程序怎么理解?

问题描述

这一小段c程序怎么理解?
int main(void)
{
char str[81];
char *p temp;
int inlength;
gets(str);
for (p = stri=0n = strlen(str); i<n/2; i++)//将整个字符串倒序
{
temp = *(p+n-1-i);
*(p+n-1-i) = *(p+i);
*(p+i) = temp;
}
puts(str);

p = str;
length=0;

解决方案

for实现的功能就是第一个和倒数第一交换,第二个和倒数第二个交换,第三个和倒数第三个,依次,直到中间

解决方案二:
指针真的是个挺好玩的东西,不过我是搞Java的,把指针本身的地址,指针引用的地址,指针的含义琢磨琢磨,学c逃不掉的坎。咬咬牙慢慢啃

解决方案三:
将字符串倒序for循环将第n个和倒数第n个调换,实现倒序功能

解决方案四:
主要是for循环里指针的理解,里面是进行的是首尾交换。学指针的时候不好理解就举个简单理解画图,单数、双数个字符的字符串,少一点点,然后耐心的推演两遍就明白了。

解决方案五:
如一楼所说,将字符串以中心为界,对称字符互换。

时间: 2024-09-11 03:50:11

字符串-这一小段c程序怎么理解?的相关文章

char-大侠快看我写的一小段代码

问题描述 大侠快看我写的一小段代码 #include #include //搜索x44x65x73x63x72x69x70x74x69x6Fx6E 偏移地址 DWORD ReadFile(char* str) { char data[11] = {0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E}; HANDLE pfile = CreateFile(str,GENERIC_READ,0,NULL,OPEN_EXIS

pat-PAT1009 c语言字符串问题 我写的程序输出时起始位置会多一个空格,如何改正才能没有空格

问题描述 PAT1009 c语言字符串问题 我写的程序输出时起始位置会多一个空格,如何改正才能没有空格 #include #include int main(){ int i,j=0,m,k=0; char sen[100]; char s[10][20]; gets(sen); m=strlen(sen)+1; for(i=0;i<m;i++){ if(sen[i]==''){ s[j][k]=''; k=0; j++; } if(sen[i]==' ') { s[j][k]=''; k=0;

malloc-小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下

问题描述 小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下 程序要求如下: 一个字符串,字符连续的部分为子串(不含带数字的部分) 下面是我写的程序 #include using namespace std; char* BiggestStr(char* str) { char* pStr = (char*)malloc(sizeof(str)+1); //申请一个空间存最大子串 int nCount = 0; //用于记录最大子串的长度 int J_nCount=0; ch

c++-编写一段C++程序,利用strcpy和strcat

问题描述 编写一段C++程序,利用strcpy和strcat 编写一段C++程序,定义两个字符数组并用字符串字面值初始化他们; 接着再定义一个字符数组存放前两个数组连接后的结果.使用strcpy和strcat把前面两个数组的内容拷贝到第三个数组中. 解决方案 #include "stdafx.h" #include "string.h" int _tmain(int argc, _TCHAR* argv[]) { char buf1[] = "hello&

printf-为什么这一小段代码总是运行时错误 求大家帮帮忙

问题描述 为什么这一小段代码总是运行时错误 求大家帮帮忙 #include<stdio.h>#include<string.h>int main(){ int t; scanf(""%d""&t); while(t--) { int n; scanf(""%d""&n); while(n--) { char a[]="">+""; char

一段MATLAB程序运行不出来,不知道哪里出错了,跪求高手解答

问题描述 一段MATLAB程序运行不出来,不知道哪里出错了,跪求高手解答 %%%%%从o点出发达到目的地 function [chengyong,shuru,wq1,wq2]=gengxin(pfangan,guanxi,tm,chengyong,kchy) %%%若选择的为1-2,选择可供使用的方案(尽量满装) tf=find(pfangan(:,1)<=kchy(1,1)&pfangan(:,2)<=kchy(1,2)); if length(tf)>0 %%%方案存在(可以

《Python数据科学实践指南》——1.3 第一段Python程序

1.3 第一段Python程序 Python程序有时也称为Python脚本,是定义和命令的序列.Python提供了非常方便的交互式解释器,也就是1.2节中提到的在终端输入"python"时启动的程序.很明显,无论是终端还是Python交互式解释器,都需要用户在命令提示符后面输入命令才能工作,通常我们称其为shell.Linux shell.Mac OS X shell或是Python shell.shell对应的中文有"壳"的意思,表示这是计算机核心计算单元的一层外

《Python数据科学实践指南》——1.3节第一段Python程序

1.3 第一段Python程序Python程序有时也称为Python脚本,是定义和命令的序列.Python提供了非常方便的交互式解释器,也就是1.2节中提到的在终端输入"python"时启动的程序.很明显,无论是终端还是Python交互式解释器,都需要用户在命令提示符后面输入命令才能工作,通常我们称其为shell.Linux shell.Mac OS X shell或是Python shell.shell对应的中文有"壳"的意思,表示这是计算机核心计算单元的一层外壳

c++-一个关于递归的小程序,理解不了其输出结果。。。。。

问题描述 一个关于递归的小程序,理解不了其输出结果..... 一个c++递归的小程序,其输出结果理解不了,请问这个递归的基例是"cout<<endl;"这个吗? void f(char ch){ if (('A' <= ch) && (ch <= 'H')){ f(ch - 1); cout << ch; } else cout << endl; } int main(){ f('C'); } 输出结果为: (空一行) A