Tag: 反向

使用指针反转字符串

我正在尝试使用指针来反转一个字符串。当我尝试打印反向字符串而不是获得DCBA时,我只是作为BA出来?有人可以帮我这个吗? #include void reverse(char *); void main() { char str[5] = “ABCD”; reverse(str); } void reverse(char *str) { char *rev_str = str; char temp; while(*str) str++; –str; while(rev_str < str) { temp = *rev_str; *rev_str = *str; *str = temp; rev_str++; str–; } printf("reversed string is %s",str); }

c程序反转数字

我正在寻找C程序来反转如下数字: 如果我输入: 123456 那么结果将是: 654321 请帮我。

链表头双指针传递

我在一些书/教程中看到了这一点。 将头指针(链接列表)传入函数时,需要将其作为双指针传递。 例如://这是为了反转头部指向第一个节点的链表。 void nReverse(digit **head) { digit *prev=NULL; digit *curr=*head; digit *next; while(curr!=NULL) { next=curr->next; curr->next=prev; prev=curr; curr=next; } *head=prev; return; } 这很好用。 当我使用单指针时,它也有效, void nReverse(digit *head) { digit *prev=NULL; digit *curr=head; digit *next; while(curr!=NULL) { next=curr->next; curr->next=prev; prev=curr; curr=next; } head=prev; return; } 我尝试使用头指针打印列表。 这两个function都很好。 我错过了什么吗? 谢谢,

gdb中的“target record-full”使printf上的“n”命令失败并且“进程记录不支持地址0x7ffff7dee6e7处的指令0xc5”?

我想在gdb中使用“reverse-step”和“reverse-next”命令。 堆栈溢出告诉我,我应该在执行上下文中运行“target record-full”,我希望“rn”和“rs”。 但是发生了一些奇怪的错误: 1 2 #include 3 int i=0; 4 void fa() 5 { 6 ++i; 7 printf(“%d\n”,i); 8 ++i; 9 } 10 int main(){ 11 fa(); 12 return 0; 13 } 我编译并运行这个程序: (gdb) b 4 Breakpoint 1 at 0x40052a: file test02.c, line 4. (gdb) r Starting program: /home/Troskyvs/a.out Breakpoint 1, fa () at […]

C – 反转一个数字

我在Linux上用C编码,我需要反转一个数字。 (EG:12345将变成54321),我只是将它转换为使用itoa的字符串然后反转,因为它可能更容易使用字符串操作,但事实certificateitoa是非标准的并且不包括在内在gcc。 有没有办法在十进制数字上做二进制旋转样式的事情,如果不是我应该采取什么方法?

如何反转C中的按位AND(&)?

如何反转C中的按位AND(&)? 例如,我在C中有一个这样的操作: ((unsigned int)ptr & 0xff000000)) 结果是0xbf000000 。 我现在需要的是如何反转上述内容,即通过使用操作的结果来确定ptr ,当然还有0xff000000 。 有没有简单的方法在C中实现这个?

链表反递

我正在查看斯坦福图书馆的以下代码: void recursiveReverse(struct node** head_ref) { struct node* first; struct node* rest; /* empty list */ if (*head_ref == NULL) return; /* suppose first = {1, 2, 3}, rest = {2, 3} */ first = *head_ref; rest = first->next; /* List has only one node */ if (rest == NULL) return; /* put the first […]

使用指针修改字符串时发生分段错误?

上下文 我正在学习C,我正在尝试使用指针来反转字符串。 (我知道你可以使用一个数组;这更多的是学习指针。) 问题 尝试运行下面的代码时,我不断遇到分段错误。 GCC似乎不喜欢*end = *begin; 线。 这是为什么? 特别是因为我的代码几乎与另一个问题中讨论的非邪恶C函数相同 #include #include void my_strrev(char* begin){ char temp; char* end; end = begin + strlen(begin) – 1; while(end>begin){ temp = *end; *end = *begin; *begin = temp; end–; begin++; } } main(){ char *string = “foobar”; my_strrev(string); printf(“%s”, string); }