我是c语言的新手。我试图在char数组中反转元素。实际上,我几乎颠倒了,但有些东西是我做不到的。 这是代码:
06-12-2015 06:10:10 PM
代码反转了数组,但又添加了另一个字母。
答案 0 :(得分:3)
正确的代码是
for(j=length-1; j>=0; j--){
printf("%c", word[j]);
这是因为字符串的元素从0
索引到length-1
。例如,
word == "Hello"
length == 5
word[0] == 'H'
word[1] == 'e'
word[2] == 'l'
word[3] == 'l'
word[4] == 'o'
答案 1 :(得分:1)
这里有一个有效的例子:
#include <stdio.h> // printf
#include <stdlib.h> // malloc, free
#include <string.h> // strlen
int main() {
char* s = "hello";
size_t l = strlen(s);
char* r = (char*)malloc((l + 1) * sizeof(char));
r[l] = '\0';
int i;
for(i = 0; i < l; i++) {
r[i] = s[l - 1 - i];
}
printf("normal: %s\n", s);
printf("reverse: %s\n", r);
free(r);
}
length + 1
length - 1
应该说'\0'
。
您的代码错误
您必须注意终止- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[myButton setKeyEquivalent:@"D"];
}
- (IBAction)buttonPressed:(id)sender
{
NSLog(@"It worked!");
}
。
答案 2 :(得分:0)
我希望这将是连击解决方案。
没有string.h头文件
main()
{
char str1[100], str2[100];
int i, k, j;
scanf("%s", &str1);
for(i=0; str1[i] != '\0'; i++ );
j=i-1;
for(k=0; k<=i; k++)
{
str2[k]=str1[j];
j--;
}
for(k=0; k<i; k++)
printf("%c", str2[k]);
return 0;
}